簡體   English   中英

Flutter/Firestore - 查詢快照不包括所有文檔

[英]Flutter/Firestore - query snapshot does not include all docs

我的 Firestore 查詢:

 FirebaseFirestore.instance
        .collection('collection')
        .withConverter<Model>(
          fromFirestore: (snapshots, _) => Model.fromJson(snapshots.data()!),
          toFirestore: (model, _) => model.toJson(),
        )
        .snapshots()
        .listen((snapshot) async {

          int size = snapshot.size;
         items = snapshot.docs.map((e) => e.data()..path = e.id).toList();
    });

我的收藏包含大約 67000 個文檔,但snapshot.size是 1297。文檔說快照應該包含所有文檔,那么為什么只包含 1297?

如果我嘗試改用get() ,它會花費 5 倍的時間,但我會得到相同的 1297 個文檔。

有任何想法嗎? 我需要從我的收藏中獲取所有文件

這不是計算集合中文檔數量的方式。 為什么? 因為你必須為你閱讀的每份文件支付一份文件。 最簡單的解決方案是使用count() 如果此方法返回 1297,那么您的集合中確實有 1297 個文檔。

編輯:

回答你最后的評論:

count() 是否計費?

是的,根據官方文檔

匹配 0 到 1000 個索引條目的 count() 操作按讀取一個文檔計費。 對於匹配 1500 個索引條目的 count() 操作,您需要支付 2 次文檔讀取費用。

因此,在您的情況下,如果您的收藏包含 1297 份文檔,您只需為兩次文檔讀取付費。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM