监听 Firestore 中大量文档更新的高性能方法?

sar*_*den 2 firebase google-cloud-firestore

onSnapshot用于侦听 Cloud Firestore 中大量文档的更改的最高效方法是什么?

(查询最多可能返回约 50-75 个文档,并使用“加载更多”按钮进行分页,该按钮使用query.endBefore

侦听整个查询的更改更好,还是查询一次并将 onSnapshot 侦听器附加到返回的每个文档更好?

请注意,这些文档不太可能经常更改,但我仍然需要能够在更改时进行监听。

Tod*_*man 5

您最好监听整个查询的更改。

Cloud Firestore 在通过网络发送更改时非常高效。因此,如果您要为一组 75 个文档创建快照侦听器,并且其中一个文档发生更改,则 Cloud Firestore 将仅向您的设备发送一个已更改的文档。(您仍然会在快照侦听器中收到完整的数据集,这通常是您想要的。Firebase 负责将新数据合并到缓存数据中。)

设置 75 个不同的快照侦听器(每个文档一个)并不能真正为您节省任何网络或电池成本。(事实上​​,它对客户端来说可能效率较低。)但这确实会让您的生活变得更加困难,并且还意味着您会错过诸如将新文档添加到您的集合中之类的事件。