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

Firebase Security Rules查询时拦截请求问题求助

解决Firestore CollectionGroup查询的权限拒绝问题

你的问题出在安全规则的路径匹配范围上:当前规则仅匹配根目录下的cases集合,但collectionGroup查询会遍历所有层级中名为cases的子集合,现有规则无法覆盖这些子集合的权限校验,导致权限拒绝。

修正后的安全规则

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    // 使用递归通配符匹配任意父路径下的cases集合
    match /{path=**}/cases/{id} {
      allow read: if resource.data.isTest != true;
    }
  }
}

关键说明

  • /{path=**}/cases/{id} 是Firestore规则中针对集合组查询的标准写法:
    • {path=**} 是递归通配符,匹配任意数量的父路径段(比如users/{userId}/cases/{id}、projects/{projId}/cases/{id}等所有层级的cases子集合);
    • 确保所有参与collectionGroup查询的cases集合都能触发对应的权限校验逻辑。

额外验证点

如果你的业务需要限制仅登录用户访问,可以在规则中叠加身份校验:

allow read: if request.auth.uid != null && resource.data.isTest != true;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 18:12:09