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

Firestore集合get规则生效,为何快照监听器无法返回数据?

问题原因与解决方案

你遇到的问题核心是Firestore安全规则中get和list是两个独立的操作权限:

  • 当前规则只允许了单个文档的get操作,也就是通过文档ID直接读取单个符合readable == true条件的文档;
  • 而onSnapshot监听整个集合属于集合查询(list操作),你的规则里没有允许这个操作,Firestore会直接拒绝整个查询请求,所以返回的快照里没有任何数据。

修复方案

修改安全规则,添加list权限,条件和get保持一致即可:

match /test/{test} {
    allow get: if resource.data.readable == true;
    allow list: if resource.data.readable == true;
}

补充说明

Firestore的安全规则会对集合查询做全量校验,只要规则未允许list操作,整个查询都会被拒绝,不会返回部分符合条件的文档。你可以打开浏览器控制台的Firestore日志,查看安全规则拒绝请求的具体提示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 16:39:20