簡體   English   中英

更改一項后收聽集合時,Firestore 讀取了多少?

[英]How many Firestore reads when listening to a collection after changing one item?

假設我有一個包含 10 個項目的 Firestore 集合,我的應用監聽該集合的快照以獲取實時更新,並在列表視圖中顯示結果。

如果我更新該集合中的一個文檔,將發出一個新的快照,這樣我就可以重建列表視圖。

但是會發生多少次讀取?

自從重建整個列表視圖(因為我有整個集合的偵聽器)后,我是否獲得了 10 次額外的讀取?

或者 Firebase SDK 是否足夠聰明,可以弄清楚只有一個文檔發生了變化,並通過與前一個(緩存的?)文檔的差異來計算新快照,從而導致一個只讀?

這就是文檔在這方面所說的:

監聽查詢結果

Cloud Firestore 允許您監聽查詢結果並在查詢結果發生變化時獲得實時更新。

當您收聽查詢結果時,每次添加或更新結果集中的文檔時,您都需要為一次讀取付費。 由於文檔已更改而從結果集中刪除文檔時,您也需要為閱讀付費。 (相比之下,刪除文檔后,您無需為閱讀付費。)

我的解釋是,如果我這樣做:

collectionRef.snapshots().listen((event) { ... });

那么每次更改我應該讀 1 次。

但是,如果我使用collectionRef.snapshots()作為 stream 來重建 UI(沒有顯式偵聽器)怎么辦? 這會導致 1 次讀取還是 N 次讀取?

這最初被標記為this的副本。 但是問題是不同的,因為我問的是在文檔更改時收聽父集合(而不是收聽文檔本身)。

您的場景只有一次閱讀,但 30 分鍾后,您將按 10 次閱讀收費,然后再過 30 分鍾,您將再按 10 次閱讀收費,依此類推...

我不知道為什么 Cloud Firestore 會在 30 分鍾后重新讀取整個集合收費。 數據已經在本地緩存中。 它應該只需要讀取自上一個偵聽器處於活動狀態以來的更改。

暫無
暫無

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

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