如何设置Firebase Realtime Database安全规则以解决测试模式到期拦截问题
Firebase Realtime Database安全规则配置操作指南
首先先明确一个基础概念:你收到的两条提示均属于Cloud Firestore的服务通知,和你当前正在配置的Realtime Database是Firebase旗下两个相互独立的数据库服务,二者安全规则互不影响。如果你没有使用Firestore服务,可以直接在Firebase控制台关闭该服务即可消除提示;如果正在使用Firestore,需要单独为其配置安全规则。
你当前配置的Realtime Database规则属于全局登录用户可读写全库,权限粒度过大,依然存在数据被恶意篡改、批量泄露的风险,建议按照以下步骤优化:
- 梳理你的Realtime Database数据结构,明确每个数据节点的读写权限要求,比如用户私有数据仅对应账号可访问、公开数据可全局读仅管理员可写等。
- 把全局读写规则替换为按节点细化的权限规则,以下是通用场景的参考配置:
{ "rules": { // 公开数据节点:所有人可读,仅管理员可写 "public": { ".read": true, ".write": "root.child('admins').child(auth.uid).exists()" }, // 用户私有数据节点:仅对应用户本人可读写 "users": { "$user_id": { ".read": "auth.uid === $user_id", ".write": "auth.uid === $user_id" } }, // 未明确配置的节点默认拒绝所有访问,避免遗漏权限配置 ".read": false, ".write": false } }
- 登录Firebase控制台进入Realtime Database的「规则」页面,替换规则后保存即可生效。你可以使用规则编辑页自带的测试工具,模拟不同用户的读写请求验证规则是否符合预期,测试过程不会影响线上业务。
- 若你正在使用Firestore服务,参考同样的逻辑为Firestore配置分节点的细化安全规则即可,配置完成后30天自动封禁的限制会直接解除。
内容的提问来源于stack exchange,提问作者Emily
相关产品推荐
相关产品推荐

