簡體   English   中英

Flutter 帶有變量項的 Firestore 復合索引不現實?

[英]Flutter Firestore Composite Index with variable item not realistic?

我剛剛創建了一個具有此 stream 的 StreamBuilder:

      stream: db
          .collection('GearLockerItems')
          .where('inPack.$packID', isEqualTo: true)
          .orderBy('itemName')
          .snapshots(),

當我運行代碼時,一開始它沒有工作,當我檢查調試控制台時。 我看到了一個我必須點擊的鏈接,然后它去構建一個復合索引,它工作了!

但是....復合索引如果對於那個特定的變量$packID這意味着每次我在我的應用程序中點擊一個新的“包”來獲取這個列表,它不會工作,直到我手動點擊創建索引....

對於許多用戶可以使用的應用程序來說,這似乎並不直觀,我無法手動索引每個項目。 無論如何,還是我需要重新整理我的整個數據庫?

解決此問題的一種方法是將'inPack.$packID'展平為文檔字段的一部分,而不是在 object 中。

另一個是列出所有可能的選項並為它們創建索引,需要一些時間是的,但可以完成工作。 我不會采用這種方法,因為如果創建了新包並且沒有為這些包創建索引,它將被修剪到未來的錯誤。 除非您創建雲 function 來自動創建索引。 但是太多的索引又會增加大小,並且會適得其反“寫操作”的性能。

另外,請看一下這個問題,因為它與您的情況有關。

暫無
暫無

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

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