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

Firebase Storage安全规则是否支持版本2?规则匹配差异咨询

Firebase Storage安全规则版本2相关问题解答

1. Storage安全规则是否支持版本2?

Firebase Storage安全规则完全支持版本2,你只需在规则的最开头添加声明:

rules_version = '2';

官方示例未普遍使用版本2只是文档更新滞后,不代表功能不支持。

2. Firestore与Storage规则行为差异的原因

你遇到的权限问题,核心是Storage规则未启用版本2:

  • 你的Firestore规则明确声明了rules_version = '2';,版本2的规则逻辑为:所有匹配请求路径的规则都会被评估,只要有一条规则允许访问,就会授予权限。因此非管理员访问someCollection时,尽管全局管理员规则不允许,但后续集合规则的允许条件生效,最终能正常读取。
  • 而你的Storage规则未添加版本2声明,默认使用版本1。版本1的规则逻辑为:匹配到第一条符合路径的规则后立即停止评估。全局的match /{allPaths=**}会优先匹配所有路径,非管理员不满足该规则的权限条件,后续针对/images/fruits/的规则根本不会被执行,导致无访问权限。

修正后的Storage规则(启用版本2)

rules_version = '2';
service firebase.storage {
    match /b/{bucket}/o {
        function isAdmin() {
            return request.auth.token.admin == true;
        }

        function isSignedIn() {
            return request.auth != null;
        }

        match /{allPaths=**} {
            allow write: if isAdmin();
            allow read: if isAdmin();
        }

        match /images/fruits/{allPaths=**} {
            allow read;
        }
    }
}

启用版本2后,规则会按OR逻辑评估所有匹配路径的规则,非管理员访问/images/fruits/路径时,后续的允许规则会生效,正常获取访问权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 02:15:58