具有流限制更改的Firestore读取操作计算



实现一个聊天应用程序,实时分页似乎很复杂,考虑到不断添加和可能删除消息,有很多边缘情况。

因此,为了避免这种情况,我想知道,如果我使用一个提取最近50条消息的流,那么如果用户向上滚动,我会将提取限制增加到200,以此类推

return firestore
.collection("chatrooms")
.doc(chatroomId)
.collection('messages')
.orderBy('timestamp', descending: true)
.limit(documentLimit)
.snapshots()

这种逻辑会导致:50+200=250次读取。或者50+150=200次读取

我看过文件,但我不确定这个案子的结果。

在最好的情况下,启用本地缓存和/或在删除旧的快照侦听器之前附加新的快照侦听程序。在这种情况下,将从缓存中读取50个现有文档,因此服务器端文档读取时不会收取这些文档的费用。

在最坏的情况下,您禁用了本地缓存,并在删除旧侦听器后附加新侦听器。在这种情况下,客户端上不再存在50个旧文档,因此还需要从服务器读取(并收取费用(。

最新更新