Firebase Storage安全规则请求被拒:模拟器正常但部署应用请求失败
问题诊断与修复方案
核心错误:安全规则的服务类型声明错误
你当前的规则开头用了service cloud.firestore,这是Firebase Firestore数据库的规则声明格式,但你配置的是Cloud Storage的安全规则,服务类型完全不匹配,导致规则无法被正确解析,所有请求都被默认拒绝(Firebase安全规则默认拒绝所有请求,除非显式允许)。
修正后的Storage安全规则
将规则的服务声明改为service firebase.storage,其余逻辑保持不变即可:
service firebase.storage { match /b/{bucket}/o { match /internal/profilePhoto/{imageId} { allow read: if request.auth != null; allow write: if request.auth.uid == imageId; } } }
额外检查项
- 确认规则已正确部署:在Firebase控制台的Storage规则页面点击「发布」,确保修正后的规则生效
- 验证存储路径匹配:代码中上传路径
internal/profilePhoto/{uid}和规则中的匹配路径完全一致,这部分无需调整 - 确认用户认证状态:上传前确保
currentUser是已认证的有效用户对象(可通过console.log(currentUser)确认uid字段存在)
内容的提问来源于stack exchange,提问作者Spencer Hawkins
相关产品推荐
相关产品推荐

