2 回答
TA贡献1806条经验 获得超8个赞
如果没有集合,您将无法检索文档值。所以我建议将收藏名称更改为友谊状态。然后您可以轻松检索文档的字段。
它需要是这样的:
FriendShip
---->Current User id
--->Friendship Status
-----> Document id
然后您可以使用orderby或Equalto函数。
上述结构的代码。
mfirebaseFirestore.collection("Friendship").document(mCurrentUser).collection("FriendshipStatus")
.whereEqualTo("RequestStatus", "Completed")
.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (QueryDocumentSnapshot document : task.getResult()) {
Log.d("abc", document.getId() + " => " + document.getData());
}
} else {
Log.d("abc", "Error getting documents: ", task.getException());
}
}
});
笔记 :
Whereequalto
当您尝试在集合中查找数据时有效。所以你必须查询直到集合。然后用于whereequalto
与您的查询类似的文档
TA贡献1856条经验 获得超5个赞
无法使用客户端 SDK(Android、iOS、Web)列出文档的子集合。
另一方面,“ getCollections()
Cloud Firestore服务器客户端库的方法列出了文档引用的所有子集合”。
由于您似乎正在使用 Android SDK,因此您需要找到解决方法。一种可能的解决方法是将子集合名称保存在父文档的专用字段中。例如,您可以使用数组字段来存储子集合的所有名称。
当您使用 Android SDK 创建子集合的第一个文档时,您通常会填充此字段。
如果出于某种原因,您无法从客户端执行此操作,您可以使用云功能,它依赖于 Admin SDK,因此可以使用getCollections()
上面提到的方法。
添加回答
举报