Firestore查询含10个文本字段的单文档算1次还是10次读取?统计规则是什么
Firestore 读取计数问题解答
场景结论
你提到的查询场景只会被统计为 1次读取,计费和文档内的字段数量、字段类型完全无关,仅和返回的文档数量挂钩。
Firestore 读取操作统计核心规则
- 基础计数逻辑:所有主动读取操作(包括单文档查询
get()、集合条件查询、批量查询)均按最终返回的文档数量统计读取次数,返回N个文档即计为N次读取。哪怕你通过select()方法指定仅返回文档的部分字段,计数规则也不会发生变化。 - 空查询计数:只要你发起了一次合法的读取请求,哪怕最终没有匹配到任何符合条件的文档,也会被计为 1次读取,这部分是查询本身的执行开销。
- 实时监听(SnapshotListener)计数:
- 首次绑定监听器时,接口返回多少个初始匹配的文档,就统计多少次读取
- 后续监听过程中,仅当匹配的文档发生新增、修改、删除变更时,每个发生变更的文档单独计1次读取,无变更的重复推送不会重复计数
- 监听器空闲超过30分钟后重新连接,会按照首次绑定的规则重新统计全量匹配文档的读取次数
- 批量获取计数:调用
getAll()接口一次查询多个文档时,返回的每个存在的文档计1次读取,查询的目标文档不存在时每个也会计1次读取。 - 控制台操作计数:在Firebase官方控制台中浏览文档、手动执行查询操作时,也会遵循相同规则计入读取配额,每次加载的文档都会被统计。
内容的提问来源于stack exchange,提问作者Tom Shaw
相关产品推荐
相关产品推荐

