繁体   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