Firebase Realtime Database客户端访问过期被拒,如何配置安全规则
Firebase Realtime Database 规则保存失败排查与可直接复用规则
规则保存失败的常见触发原因
- 语法混淆:误将Cloud Firestore的规则语法套用到Realtime Database场景,二者语法体系不通用
- 结构缺失:规则内容没有包含
rules顶级根节点,触发系统校验不通过 - 格式错误:存在多余逗号、括号不匹配、字符串未加引号等基础JSON格式问题
可直接复用的合规规则模板
所有模板可直接全选原有规则内容替换后粘贴,无需额外调整即可通过系统校验
生产环境基础合规规则(推荐优先使用)
适配绝大多数已接入Firebase Authentication的应用场景,默认拒绝所有未明确放行的请求:
{ "rules": { // 公共公开数据路径:所有人可读、禁止写入 "public_assets": { ".read": true, ".write": false }, // 用户私有数据路径:仅对应用户本人可读写 "user_scoped_data": { "$uid": { ".read": "$uid === auth.uid", ".write": "$uid === auth.uid" } }, // 默认拦截所有未单独定义的路径请求 ".read": false, ".write": false } }
开发测试阶段临时规则
适配未接入认证的本地调试场景,设置自动过期时间避免长期暴露风险:
{ "rules": { ".read": "now < 1767225600000", ".write": "now < 1767225600000" } }
规则发布后的效果与注意事项
- 发布成功后,系统会立即解除对所有客户端请求的强制拦截状态
- 平台不会再发送“数据库访问权限已过期、所有请求被拦截”的提醒邮件
- 若发布时仍提示校验失败,可逐行检查是否存在多余的代码块标记、格式符号,确保内容是标准JSON结构
- 注意:不要直接使用“所有人可读写全库”的无限制规则上线生产环境,这类规则虽然能通过保存校验,但会存在数据被恶意篡改、泄露的高风险
内容的提问来源于stack exchange,提问作者Aanyu Deborah O
相关产品推荐
相关产品推荐

