You need to enable JavaScript to run this app. Test Mode权限过期,求适配含用户登录注册及资料修改功能的Firebase Realtime Database安全规则
优惠活动
大模型
产品
解决方案
定价
更多

Test Mode权限过期,求适配含用户登录注册及资料修改功能的Firebase Realtime Database安全规则

适配当前开发阶段的Firebase Realtime Database安全规则配置

这套规则完全匹配你当前的开发进度,覆盖用户登录、注册、个人信息修改的全流程功能需求,同时解决原Test Mode权限到期、公开访问的安全问题,部署后即可直接正常使用。

规则适配前提

默认遵循通用的用户数据存储结构:你的用户个人信息(昵称、绑定邮箱等)统一存储在数据库根路径下的users节点下,每个用户的专属子节点ID与Firebase Authentication返回的用户唯一UID完全对应。

可直接部署的规则代码

{
  "rules": {
    // 全局默认拦截所有未明确授权的请求
    ".read": false,
    ".write": false,
    "users": {
      // 动态匹配每个用户的专属数据节点
      "$uid": {
        // 仅允许登录状态的用户本人读写自己的节点数据
        ".read": "auth != null && auth.uid == $uid",
        ".write": "auth != null && auth.uid == $uid",
        // 对昵称字段加基础格式校验
        "nickname": {
          ".validate": "newData.isString() && newData.val().length >= 2 && newData.val().length <= 20"
        },
        // 对邮箱字段做一致性校验,确保和Auth认证的绑定邮箱匹配
        "email": {
          ".validate": "newData.isString() && newData.val() === auth.token.email"
        },
        // 明确禁止客户端直接修改密码类敏感字段
        "password": {
          ".read": false,
          ".write": false
        }
      }
    }
  }
}

规则特性说明

  • 权限边界清晰:拒绝所有未登录用户的跨用户数据访问,彻底解决原Test Mode全公开的安全风险
  • 无自动过期限制:部署后不会再出现30天周期到期自动拦截所有请求的问题,只要规则保持在线就不会中断业务请求
  • 功能完全适配:不会拦截登录注册、修改昵称、修改绑定邮箱的正常客户端请求,不需要额外调整现有业务代码
  • 减少脏数据:内置的字段校验规则会自动拦截长度不合规的昵称、不匹配认证状态的无效邮箱写入,降低开发阶段的数据清洗成本
  • 适配密码修改流程:密码相关操作不需要直连Realtime Database,直接调用Firebase Auth SDK内置的修改密码、重置密码接口即可,不需要数据库开放对应权限,安全性更高

小提示:如果后续开发需要新增公共功能(比如全站公告、公开内容列表),只需要在规则里给对应路径单独加细分权限即可,不需要改动全局默认拦截的基础配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.02 14:06:07