比方说,我对某个日期范围之内的Firestore集合进行查询。如果我能观察到该组文档并对其进行遍历以建立本地集合,那么每次Firestore中发生更改时,它都会从Firestore中重新读取所有数据吗?说这个可观察的是从包含500个文档的where子句中进行的,我通过做一些事情来进行迭代:
this.firestoreObservable$.subscribe(documents => {
documents.forEach(async doc => {
// do something
})
})
如果在Firestore上更改一个文档中的一个字段,那么该字段是否会算作另一500个文档读取?如果是这样(哎呀!),推荐的最佳做法是避免花费这么多的读物?
谢谢。
答案 0 :(得分:2)
不。如果仅更改一份文档,则只需阅读一遍。只要查询正在积极侦听更新,整个文档集就会缓存在内存中,并且SDK会为您提供缓存的结果以及实际更改的内容。
如果查询结束并且有新查询启动,则将再次向您收取全部结果的费用。