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

Firebase实时数据库规则:自定义UID验证与特殊权限配置

实时数据库权限规则错误分析与修正

你的规则存在以下几个关键错误:

  • 大小写错误:实时数据库规则的内置对象是newData(小驼峰写法),你写成了Newdata,导致规则无法正确识别该对象。
  • 方法调用错误:val是获取节点值的方法,必须加括号val()才能返回实际值,你写的val只是对方法的引用,并非节点的具体值。
  • 逻辑判断错误:exists()方法返回的是布尔值(true/false),你将其与字符串sdsd做比较,逻辑永远不成立,这是核心问题。
  • 路径匹配错误:第一个规则里的root.child("$folder")路径不符合需求,你需要访问的是存储自定义UID的Cust_uid文件夹,而非未定义的$folder变量。

正确的规则示例

假设你要为Sp_Admin文件夹设置写入权限,验证提交数据中的S_uid是否存在于Cust_uid目录下,规则应该写成:

{
  "rules": {
    "Sp_Admin": {
      ".write": "root.child('Cust_uid').child(newData.child('S_uid').val()).exists()"
    }
  }
}

规则说明

当用户尝试写入Sp_Admin文件夹时,规则会执行以下逻辑:

  1. 从提交的新数据中取出S_uid字段的值;
  2. 检查数据库根目录下的Cust_uid文件夹中,是否存在以该值命名的节点;
  3. 如果节点存在,允许写入操作;否则拒绝。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 21:11:01