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

Firestore重复添加相同监听器时,规则中get操作会重复验证收费吗?

问题

此前在Stack Overflow提出过关于Firestore缓存与读取收费的问题,其中提到重复添加以下相同的监听器时,仅会按单次监听器收取数据读取费用:

db.collection("testCollection").onSnapshot(function(doc) {}); 
db.collection("testCollection").onSnapshot(function(doc) {});

但如果在该集合的安全规则中使用get操作,规则代码如下:

match /testCollection/{documentId} {
   allow list: get(/databases/$(database)/documents/users/$(request.auth.uid)).data.isAllowToReadTestCollection;
}

请问:

  • 规则会执行两次验证吗?
  • 规则中的get操作会被收取两次费用吗?
回答

Firestore会对重复的请求进行优化处理:

  • 针对你添加的两个相同监听器,Firestore会将它们视为同一个请求的重复订阅,不会执行两次规则验证。
  • 规则里的get操作也只会执行一次,只会收取一次对应的文档读取费用。

这是因为Firestore会自动合并相同路径、相同认证上下文的重复请求,无论是数据读取还是规则验证环节,都会复用处理结果,避免重复执行和重复收费。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 02:37:10