firebase - 当 Firestore 字段更新时,Observables 会重新查询所有数据吗?
问题描述
假设我对某个日期范围内的 Firestore 集合进行查询。如果我得到一组文档的 observable 并遍历它以建立一个本地集合,它是否会在每次 Firestore 发生变化时重新读取 Firestore 中的所有数据?假设这个 observable 来自包含 500 个文档的 where 子句,我通过做一些事情来迭代:
this.firestoreObservable$.subscribe(documents => {
documents.forEach(async doc => {
// do something
})
})
如果 Firestore 上一个文档上的一个字段发生更改,这是否会算作另外 500 个文档读取?如果是这样(哎哟!)什么是推荐的最佳实践来避免花费如此多的阅读量?
谢谢。
解决方案
不会。如果只更改一份文件,则只需阅读一次。只要查询正在主动侦听更新,整个文档集就会缓存在内存中,除了实际更改的内容之外,SDK 还会为您提供缓存的结果。
如果查询结束并启动新的查询,那么您将再次为完整的结果集付费。
推荐阅读
- amadeus - 无法在 Amadeus Flight Offers API 中使用 includedCheckedBags 属性
- ruby-on-rails - RVM - Ruby 更新 - 无法自动检测当前活动的 RVM gem 集名称
- angular - Angular 6 Error InvalidPipeArgument: '[object Object]' for pipe 'AsyncPipe' 尝试访问嵌套数组时
- c++ - 应用程序(有时)在 PlaySound() 上崩溃
- python - 动态更改 QLabel 文本不起作用
- node.js - 规划器返回错误:无法找到 $geoNear 查询的索引
- ansible - 使用 awx/ansible 中的 requirements.yml 为角色签出相同的分支
- performance - Spark 读取分区 - 资源成本分析
- javascript - 标记预订/保留的时间段
- html - PDF 文件无法在新标签页 HTML 中打开