【问题标题】:Performant way to listen for updates to large groups of documents in Firestore?侦听 Firestore 中大量文档更新的高效方法?
【发布时间】:2018-08-28 11:42:08
【问题描述】:
使用onSnapshot 侦听 Cloud Firestore 中大量文档的更改的最高效方式是什么?
(查询可能最多返回大约 50-75 个文档,并使用使用 query.endBefore 的“加载更多”按钮进行分页)
监听整个查询的变化,还是查询一次并将 onSnapshot 监听器附加到每个返回的文档会更好?
请注意,文档不太可能经常更改,但我仍然需要能够听到它们何时更改。
【问题讨论】:
标签:
firebase
google-cloud-firestore
【解决方案1】:
你最好听听整个查询的变化。
在通过网络发送更改时,Cloud Firestore 非常高效。因此,如果您要为一组 75 个文档创建快照侦听器并且其中一个发生更改,则 Cloud Firestore 只会向您的设备发送一个更改的文档。 (您仍然会在快照侦听器中收到完整的数据集,这通常是您想要的。Firebase 负责将新数据合并到您的缓存数据中。)
为每个文档设置 75 个不同的快照侦听器并不能真正为您节省任何网络或电池成本。 (事实上,它在客户端上的效率可能较低。)但这确实让您的生活变得更加困难,并且还意味着您会错过诸如将新文档添加到您的收藏中之类的事件。