Firestore读取计数疑问:iOS Swift5下两类无匹配查询的读取量统计
Firestore读取量计费与追踪问题解答
Q1:查询不存在的字段值,读取量如何计算?
执行Firestore.firestore().collection("username").whereField("name", isEqualTo: "Spider Man").getDocuments()这类无匹配结果的查询时,读取量为0次。
Firestore的读取计费规则是按实际返回的文档数量计算的——只有当查询匹配到并返回了文档,才会按返回的文档数计费。没有匹配结果的查询,不会产生任何文档读取费用,即使Firestore需要扫描索引来确认无匹配,索引访问也不计入文档读取量。
Q2:请求不存在的特定文档,读取量如何计算?
执行Firestore.firestore().collection("username").document("spiderman").getDocument()这类请求不存在文档的操作时,会被计为1次读取。
当你明确指定文档ID发起请求时,无论目标文档是否存在,Firestore都会执行一次文档查找操作,这个操作会被算作一次读取请求并计入计费。
如何追踪Firestore读取量?
- Firebase控制台:进入Firestore的「使用情况」页面,能看到累计的读取次数统计(注意数据更新有几分钟延迟,并非实时显示)。
- 代码层面:可以在Firestore操作的回调中添加日志,记录每次操作的类型和结果,再结合控制台的计费详情核对。
- 注意本地缓存:如果开启了Firestore离线缓存,重复请求同一个不存在的文档时,可能会直接从缓存返回结果,不会触发新的读取请求,但首次请求仍会产生1次读取(针对Q2的场景)。
内容的提问来源于stack exchange,提问作者berryestate968
相关产品推荐
相关产品推荐

