firebase 尝试调用虚拟方法“.........QueryDocumentSnapshot.getLong(java.lang.String)”[重复]

siv3szwd  于 2022-12-27  发布在  Java
关注(0)|答案(1)|浏览(101)
    • 此问题在此处已有答案**:

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();
                }
            });
}
pwuypxnk

pwuypxnk1#

看起来你的一些文档ID是空的。要解决这个问题,你可以检查来自firebase的数据是否缺少ID。
要使代码运行,请添加如下空值检查:

for(QueryDocumentSnapshot doc : queryDocumentSnapshots){
   if(doc.getId()!==null){
     docList.put(doc.getId(), doc);
   }
}
                    }

相关问题