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

Firebase Storage模拟器规则不生效 上传文件报403无写入权限

问题排查及解决方案
  • 首先确认本地Auth状态
    你的Storage规则要求request.auth != null才允许读写,本地Firebase Auth模拟器和线上环境完全隔离,二者登录态不互通:
    • 确认上传操作前,你已经在本地Auth模拟器完成了用户登录
    • 可访问默认地址为localhost:4000的模拟器UI,进入Auth页面确认登录用户已存在于本地用户列表中
  • 升级firebase-tools到最新版本
    低版本的firebase-tools存在已知的Storage规则不加载的Bug,执行以下命令升级即可:
    npm install -g firebase-tools@latest
    
  • 验证Storage规则是否正确加载
    • 启动模拟器时查看终端输出,确认没有storage.rules文件路径错误、解析失败的相关报错
    • 进入模拟器UI的Storage页面,点击「规则」标签,确认展示的规则和本地storage.rules文件内容完全一致
    • 若规则未加载,可执行以下命令重启模拟器强制重新加载规则:
      firebase emulators:start --only storage
      
  • 检查iOS端初始化逻辑
    • 确认Storage.storage().useEmulator(withHost:"localhost", port:9199)代码执行时机早于任何Storage引用的创建,提前创建的Storage引用会默认请求线上环境而非本地模拟器
    • 如果你使用了自定义bucket,需确认本地初始化Storage时指定的bucket名称和线上一致
  • 临时验证规则逻辑
    可临时将Storage规则修改为全允许,排查是否为规则加载问题:
    service firebase.storage {
      match /b/{bucket}/o {
        match /{allPaths=**} {
          allow read, write: if true;
        }
      }
    }
    
    若修改后上传成功,即可排除模拟器本身Bug,定位为规则加载或本地Auth状态问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 22:09:03