2 回答

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個(gè)贊
如果沒有集合,您將無法檢索文檔值。所以我建議將收藏名稱更改為友誼狀態(tài)。然后您可以輕松檢索文檔的字段。
它需要是這樣的:
FriendShip
---->Current User id
? ? ?--->Friendship Status
? ? ? ? ?-----> Document id
然后您可以使用orderby或Equalto函數(shù)。
上述結(jié)構(gòu)的代碼。
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
當(dāng)您嘗試在集合中查找數(shù)據(jù)時(shí)有效。所以你必須查詢直到集合。然后用于whereequalto
與您的查詢類似的文檔

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊
無法使用客戶端 SDK(Android、iOS、Web)列出文檔的子集合。
另一方面,“?getCollections()
Cloud Firestore服務(wù)器客戶端庫的方法列出了文檔引用的所有子集合”。
由于您似乎正在使用 Android SDK,因此您需要找到解決方法。一種可能的解決方法是將子集合名稱保存在父文檔的專用字段中。例如,您可以使用數(shù)組字段來存儲(chǔ)子集合的所有名稱。
當(dāng)您使用 Android SDK 創(chuàng)建子集合的第一個(gè)文檔時(shí),您通常會(huì)填充此字段。
如果出于某種原因,您無法從客戶端執(zhí)行此操作,您可以使用云功能,它依賴于 Admin SDK,因此可以使用getCollections()
上面提到的方法。
添加回答
舉報(bào)