截至目前,我想使用 Firestore 的 get 函数和文档游标来对我的数据进行分页。但是,我希望有某种方法可以在设备上本地更改查询结果中的项目时本地更新这些项目。理想情况下,如果有某种方法使用快照侦听器仅侦听缓存中的更改,那么我将能够大幅减少总读取次数,因为我只需要获取第一个(10?或您设置的任何限制) )来自服务器的文档而不是整个集合,如果用户群增长,可能会超过 1000 个文档。我倾向于可能必须使用我自己的一些自定义缓存实现,但当 Firestore 已经提供缓存功能时,这似乎是多余的。任何见解将不胜感激! :)
更新(2024 年 8 月):我下面的原始答案在这两个方面现在已经过时了:
O(m log n)
的顺序。虽然这还不如服务器端性能那样可扩展(O(m)
),但它比以前的 SDK 性能要好得多。原答案👇
如果您使用
onSnapshot
侦听器并为 Firestore 客户端禁用网络,这确实是可能的。
请记住,Firestore 的本地缓存不使用与服务器端实现相同的索引策略,并且您通常看到的 Firestore 性能保证仅适用于服务器端。通常:性能最初会很好,但如果离线时间较长,性能会变得更差。