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

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

Firestore 按字符串鍵查詢文檔

Firestore 按字符串鍵查詢文檔

神不在的星期二 2023-05-17 17:32:02
我有一個像這樣的 firestore 數據庫結構;我如何查詢auctions集合中具有給定值的所有文檔cargoOwnerId?com.google.firebase:firebase-firestore:20.2.0我在我的項目中使用。我在這里查看了堆棧溢出的類似問題,但沒有成功。當我運行下面的代碼時似乎沒有任何效果FirebaseFirestore.getInstance().collection("auctions").whereEqualTo("cargoOwnerId","ZkYu6H6ObiTrFSX5uqNb7lWU7KG3").get().addOnCompleteListener(task -> {? ? ?Log.d("Logging", "Size: " + task.getResult().size());});ZkYu6H6ObiTrFSX5uqNb7lWU7KG3我希望返回包含as的所有文檔的列表,cargoOwnerId但它根本不返回任何內容。大小為 0。我錯過了什么嗎?
查看完整描述

2 回答

?
鳳凰求蠱

TA貢獻1825條經驗 獲得超4個贊

您的文檔的結構方式,您嘗試做的事情是不可能的。如果您還不知道地圖屬性的名稱,則無法按地圖屬性進行查詢。地圖屬性的名稱也必須在所有文檔中保持一致。

在文檔的頂層,您顯然有一個與文檔具有相同 id 的字段,它是一個地圖。我完全不清楚為什么要在文檔中使用一個地圖字段。在我看來,您不想要一張地圖,而是希望該地圖的所有字段都是文檔字段。這將允許您執行您詢問的查詢。也許您在填充文檔時犯了錯誤。


查看完整回答
反對 回復 2023-05-17
?
牛魔王的故事

TA貢獻1830條經驗 獲得超3個贊

這個有可能。


嘗試更改task.getResult().size()為task.size()


例子:


db.collection("auctions")

        .whereEqualTo("cargoOwnerId","ZkYu6H6ObiTrFSX5uqNb7lWU7KG3")

        .get()

        .addOnSuccessListener { documents ->


            Log.d("Logging", "Size: " + documents.size());



            for (document in documents) {

                Log.d(TAG, "${document.id} => ${document.data}")


            }

        }

        .addOnFailureListener { exception ->

            Log.w(TAG, "Error getting documents: ", exception)

        }


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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