You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firebase实时数据库角色权限配置求助:读写权限规则异常

Firebase Realtime Database 权限配置修复方案

问题分析

你当前的规则错误在于直接在services根节点定义读取权限,并且错误引用了未在当前层级声明的$servicesId变量。Firebase规则中,要针对单个service节点设置权限,需要在services下嵌套子节点ID变量层级,这样才能正确访问单条服务数据的属性。

正确规则配置

{
  "rules": {
    "services": {
      "$serviceId": {
        ".read": "(data.child('roleIns').val() == 'admin') || (data.child('idUser').val() == auth.uid)"
      }
    }
  }
}

规则逻辑说明

  • 针对services下的每一条服务数据(子节点)单独设置读取权限
  • 满足以下任一条件即可读取对应数据:
    1. 该服务数据的roleIns字段值为admin(管理员录入的数据,所有用户均可访问)
    2. 当前登录用户的auth.uid与该服务数据的idUser字段值完全匹配(普通用户仅能查看自己录入的数据)

测试验证建议

  • 测试前确保用户已通过Firebase Auth完成登录,auth.uid存在且与数据库中users节点的UID一致
  • 分两种账号场景验证:
    • 使用管理员账号登录,应能查看所有services下的数据
    • 使用普通用户账号登录,仅能查看idUser与自身UID匹配的数据,无法查看其他普通用户录入的内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 17:16:03