- 此问题在此处已有答案**:
What is a NullPointerException, and how do I fix it?(12个答案)
昨天关门了。
我是一个新手,我有一个项目为我的论文,但我有一些问题。我总是得到这个错误时,我运行我的项目,因为我的应用程序总是强制关闭。
尝试对空对象引用调用虚拟方法"java. lang. Long com. google. firebase. firestore. QueryDocumentSnapshot. getLong(java. lang. String)"。
我不知道问题出在哪里,或者可能我写错了代码。
public static void loadHome(MyCompleteListener completeListener){
g_homeList.clear();
g_firestore.collection("kuis").get()
.addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
Map<String, QueryDocumentSnapshot> docList = new ArrayMap<>();
for (QueryDocumentSnapshot doc : queryDocumentSnapshots){
docList.put(doc.getId(), doc);
}
QueryDocumentSnapshot homeListDoc = docList.get("jml_kuis");
long homeCount = homeListDoc.getLong("count");
for( int i=1; i <= homeCount; i++){
String docID = homeListDoc.getString("kuis" + String.valueOf(i) + "_id");
QueryDocumentSnapshot homeDoc = docList.get(docID);
int numOfTest = homeDoc.getLong("no_kuis").intValue();
String homeName = homeDoc.getString("name");
g_homeList.add(new HomeViewModel(docID, homeName, numOfTest));
}
completeListener.OnSuccess();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
completeListener.OnFailure();
}
});
}
1条答案
按热度按时间pwuypxnk1#
看起来你的一些文档ID是空的。要解决这个问题,你可以检查来自firebase的数据是否缺少ID。
要使代码运行,请添加如下空值检查: