首页 > 解决方案 > 当 Firestore 字段更新时,Observables 会重新查询所有数据吗?

问题描述

假设我对某个日期范围内的 Firestore 集合进行查询。如果我得到一组文档的 observable 并遍历它以建立一个本地集合,它是否会在每次 Firestore 发生变化时重新读取 Firestore 中的所有数据?假设这个 observable 来自包含 500 个文档的 where 子句,我通过做一些事情来迭代:

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

如果 Firestore 上一个文档上的一个字段发生更改,这是否会算作另外 500 个文档读取?如果是这样(哎哟!)什么是推荐的最佳实践来避免花费如此多的阅读量?

谢谢。

标签: firebasegoogle-cloud-firestoreobservableangular2-observables

解决方案


不会。如果只更改一份文件,则只需阅读一次。只要查询正在主动侦听更新,整个文档集就会缓存在内存中,除了实际更改的内容之外,SDK 还会为您提供缓存的结果。

如果查询结束并启动新的查询,那么您将再次为完整的结果集付费。


推荐阅读