我的firestore数据库中有两个集合,第一个是所有文档的列表(BlockList),第二个是用户的。当用户在应用程序上为帖子添加书签时,仅将此帖子的ID发送到子收藏夹(收藏夹)。
所以我如何根据第一个集合的ID显示该子集合的文档。
firebaseFirestore.collection("Users")
.document(userId).collection("Favorites").get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
List<String> list = new ArrayList<>();
for (QueryDocumentSnapshot document : task.getResult()) {
list.add(document.getId());
}
Log.d(TAG, list.toString());
} else {
Log.d(TAG, "Error getting documents: ", task.getException());
}
}
});
我使用此代码访问子集合ID的列表,但是我想知道如何使用它从主集合(BlockList)中获取适合此ID的文档。
答案 0 :(得分:1)
循环后,您已经有了ID的列表,只需循环遍历它们,然后在blockedList中找到它们即可:
BeginPaint
答案 1 :(得分:0)
userRef.document(reference)
.collection(favCollect)
.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
task.getResult()
.getQuery()
.addSnapshotListener((queryDocumentSnapshots, e) -> {
List<DocumentChange> documentChanges = queryDocumentSnapshots.getDocumentChanges();
for (int i = 0; i < documentChanges.size(); i++) {
}
}
通过这种方式,您可以找到所需的ID