Firebase Storage规则调用Realtime Database的get()方法失效问题排查
Firebase Storage规则问题:仅允许特定权限用户访问存储文件
我尝试创建Firebase Storage规则,仅允许Realtime Database中路径/Users/{uid}/permission字段值为true的用户访问/approved/下的文件。当前使用的规则如下:
service firebase.storage { match /b/{bucket}/o { match /approved/{fileId} { allow read, write: if isApprovedUser(); } } } function isApprovedUser() { return request.auth != null && get(/databases/(default)/data/Users/$(request.auth.uid)/permission).val() == true; }
在Firebase控制台模拟器中使用有效用户ID(dzS1gm71rhgTM4NYdZQ81MuceTp2)测试时,该路径确实存在于Realtime Database,但isApprovedUser()函数始终无法正常工作。
我已尝试以下排查步骤:
- 反复核对路径正确性
- 确认用户已完成认证
- 检查Realtime Database规则(当前允许认证用户读取)
- 尝试修改路径大小写,排查拼写错误
内容的提问来源于stack exchange,提问作者Yanir Aton
相关产品推荐
相关产品推荐

