【发布时间】:2020-09-02 04:41:10
【问题描述】:
我有一个 ArrayList,其中包含我想要获取的所有 id。有没有办法可以使用列表获取多个文档及其字段值。另外,如果我必须手动创建一个 for 循环来获取每个文档,我该怎么做?
Firestore 数据结构:
Users:
user1:
field1 :
field2 :
field3 :
field4 :
user2:
field1 :
field2 :
field3 :
field4 :
user3:
field1 :
field2 :
field3 :
field4 :
列表包含:user1,user2,user3 等等...
编辑 1:
我尝试使用 for 循环来获取它,但它给出了一个空指针异常
在FriendsData.add(userDetails);
for (String doc : list_of_Friends) {
FirebaseFirestore.getInstance().collection("Users").document(doc).get()
.addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
@Override
public void onSuccess(DocumentSnapshot documentSnapshot) {
FamilyMember userDetails = documentSnapshot.toObject(FamilyMember.class);
FriendsData.add(userDetails);
}
});
编辑 2:
循环的另一个逻辑也给出了同样的错误。
当我登录时,我可以看到 doc 和 ds.getId() 都在获取值
FirebaseFirestore.getInstance().collection("Users").get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if(task.isSuccessful())
for (DocumentSnapshot ds : task.getResult()){
for (String doc : list_of_Friends) {
if(ds.getId().equals(doc)){
FriendsData.add(ds.toObject(FamilyMember.class));
}
}
}
}
});
【问题讨论】:
-
您尝试了哪些方法来检索文档?
-
我尝试使用 for 循环逐个添加每个文档,但它给出了空指针异常
-
所有文档是否都有相似的属性/字段?
-
是的,它们的字段数相同。
-
我已经更新了我对循环所做的更改。请检查
标签: java android firebase google-cloud-firestore