[英]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.