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

Firestore规则评估中get()调用是否会对查询返回的每个文档额外计读次数?

Firestore安全规则get()调用计费问题解答

问题对应安全规则

match /posts/{post} 
allow read: if get(/databases/$(database)/documents/users/$(request.auth.uid)).data.hasSubscribed == true;

最终结论

你描述的场景下总读次数为51次,安全规则里的get()调用仅会计费1次。

原因说明

  • Firestore安全规则会对同一次请求内相同路径的get()调用做缓存复用,你规则里的get路径是固定的/users/$(request.auth.uid),和当前请求的posts文档没有关联,所以单次查询的所有规则评估只会执行一次这个get调用,仅产生1次额外读计费。
  • 本次请求的总读次数 = 拉取50条posts文档的读次数 + 1次安全规则get调用的读次数,合计51次。

例外场景说明

如果你的安全规则get()路径中用到了单个文档的专属参数(比如路径构造用到通配符{post},每次匹配不同post文档时调用的get路径都不相同),这时候才会按实际调用次数计费,50条文档就会产生50次额外读,总读次数达到100次。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 04:48:00