Firestore字段更新时,Observables是否重新查询所有数据?

时间:2020-04-05 22:44:17

标签: firebase google-cloud-firestore observable angular2-observables

比方说,我对某个日期范围之内的Firestore集合进行查询。如果我能观察到该组文档并对其进行遍历以建立本地集合,那么每次Firestore中发生更改时,它都会从Firestore中重新读取所有数据吗?说这个可观察的是从包含500个文档的where子句中进行的,我通过做一些事情来进行迭代:

   this.firestoreObservable$.subscribe(documents => {
      documents.forEach(async doc => {
         // do something
      })
   })

如果在Firestore上更改一个文档中的一个字段,那么该字段是否会算作另一500个文档读取?如果是这样(哎呀!),推荐的最佳做法是避免花费这么多的读物?

谢谢。

1 个答案:

答案 0 :(得分:2)

不。如果仅更改一份文档,则只需阅读一遍。只要查询正在积极侦听更新,整个文档集就会缓存在内存中,并且SDK会为您提供缓存的结果以及实际更改的内容。

如果查询结束并且有新查询启动,则将再次向您收取全部结果的费用。