[英]how to query the subcollections in firestore using flutter?
我需要查詢 Firestore 和 Firestore 結構:
root-->payment-->(user IDs)--->(random doc ID)-->(data like paymentid: 1234, paid: 50)
(col) (doc) (col) (doc) (fields)
我的查詢就像我需要獲取paid>0
的所有值是我的查詢。
我試過的是?
var query = FirebaseFirestore.instance;
query.collection("root").where("paid",">",0);
但它沒有返回任何數據,我知道這不是正確的格式。 怎樣才能做到這一點?
我什至可以使用 Flutter 查詢此結構嗎? 或者有沒有更好的結構來實施?
您的實際查詢不會返回預期結果,因為在“root”集合下沒有包含“paid”字段的文檔。 但是會有一個解決方案,您可以在其中使用集合組查詢,但前提是您的子集合具有相同的名稱。 由於子集合的名稱是實際的用戶 ID,因此此解決方案不適用。 所以你只能做的是創建一個指向單個用戶的引用:
root-->payment-->(user IDs)
並執行以下查詢:
var query = FirebaseFirestore.instance
.collection("root").document("payment")
.collection(userId).where("paid", ">" ,0);
但是這個查詢只會返回對應於單個用戶的文檔。
有沒有更好的結構來實現?
就在這里。 請檢查以下可能的結構:
Firestore-root
|
--- users (collection)
|
--- $uid (document)
|
--- payments (collection)
|
--- paymentid: 1234
|
--- paid: 50
通過這種方式,您可以執行集合組查詢並獲取 "paid" 字段值大於0
的所有文檔:
var db = FirebaseFirestore.instance;
var finalQuery = db.collectionGroup("payments").where("paid", ">", 0);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.