You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firebase Firestore读取计费咨询:DocID与where查询计费规则

Firestore读取计费相关问题解答

问题1:指定文档ID获取单个文档的计费

使用collection().doc(文档ID)获取单个文档(包括代码里的snapshots()监听),每次读取/快照更新都只计1次读取,和集合里的其他文档数量完全无关。Firestore会直接根据文档ID定位到目标文档,不会扫描整个集合,所以只会针对这一个文档计费。

你的示例代码:

StreamBuilder(
  stream: firestore
  .collection('users')
  .doc(auth.currentUser!.uid)
  .snapshots(),

这里的snapshots()是监听该用户文档的实时变化:初始加载文档计1次读取,之后每当这个文档有更新时,都会再计1次读取,每次都是单独的1次,不会涉及整个users集合的其他文档。

补充问题:where查询的计费与读取范围

  • .where()查询不会读取集合内所有文档,Firestore会根据查询条件(如果有对应索引的话)快速定位符合条件的文档;就算没有索引触发全集合扫描,也只是性能受影响,不会读取所有文档内容。
  • 计费是按查询返回的结果文档数计算,不是集合总文档数。举个例子:集合有1000个文档,where查询返回10个,那初始查询计10次读取;后续监听时,只有当这10个文档有变化,或者有新文档符合条件加入结果集、已有文档不符合条件被移除时,才会对变化的文档计读取次数,不会按1000个文档计费。

内容的提问来源于stack exchange,提问作者EK5

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 03:15:49