当 Firestore 字段更新时,Observables 会重新查询所有数据吗?

Do Observables re-query ALL data when Firestore fields update?

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

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

如果 Firestore 上一个文档的一个字段发生变化,是否会算作另外 500 次文档读取?如果是这样(哎哟!)重新开始的最佳实践是什么来避免花费如此多的读取?

谢谢。

没有。如果只有一个文档发生变化,那么它只需阅读一次。只要查询正在主动侦听更新,整个文档集就会缓存在内存中,除了实际更改的内容之外,SDK 还会为您提供缓存的结果。

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