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

Firestore监听器安全规则:仅初始查询检查还是更新时也检查?

Firestore监听器更新时的安全规则读取次数问题

问题还原

假设Firestore安全规则中使用了get()函数,初始通过监听器获取100个文档时产生了101次读取操作;当其中单个文档更新后,接收该更新文档时是否会再次触发安全规则检查,进而产生2次读取(更新的文档本身+规则中的get()调用)?

结论与细节

是的,当单个文档更新并推送给监听器时,确实会产生2次读取操作:

  • Firestore实时监听器在文档更新时,会重新对该文档执行安全规则校验,确保当前用户仍具备访问该更新后文档的权限,这个校验流程是强制触发的。
  • 规则中如果包含get()函数调用(比如读取其他文档来验证权限逻辑),每次执行规则时都会触发一次新的get()读取,不会复用初始获取时的读取结果。
  • 初始的101次读取应该是100个目标文档的读取,加上规则中get()触发的1次读取(比如规则是集合级别的全局校验,get()仅调用一次);而单个文档更新时,只针对这一个文档重新执行规则,因此对应1次文档本身的读取+1次规则中get()的读取,总共2次。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 04:02:01