亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何訪問 Firestore 子集合中字段的值

如何訪問 Firestore 子集合中字段的值

喵喔喔 2023-11-01 22:01:36
我的數據庫如下所示:當我沒有“紅色區域”的集合名稱時,如何訪問“綠色區域”中顯示的字段的值?如何循環遍歷“紅色區域”集合以查找字段“RequestStatus”等于“Completed”的所有集合?
查看完整描述

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與您的查詢類似的文檔


查看完整回答
反對 回復 2023-11-01
?
RISEBY

TA貢獻1856條經驗 獲得超5個贊

無法使用客戶端 SDK(Android、iOS、Web)列出文檔的子集合。

另一方面,“?getCollections()Cloud Firestore服務器客戶端庫的方法列出了文檔引用的所有子集合”。

由于您似乎正在使用 Android SDK,因此您需要找到解決方法。一種可能的解決方法是將子集合名稱保存在父文檔的專用字段中。例如,您可以使用數組字段來存儲子集合的所有名稱。

當您使用 Android SDK 創建子集合的第一個文檔時,您通常會填充此字段。

如果出于某種原因,您無法從客戶端執行此操作,您可以使用云功能,它依賴于 Admin SDK,因此可以使用getCollections()上面提到的方法。


查看完整回答
反對 回復 2023-11-01
  • 2 回答
  • 0 關注
  • 218 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號