根据uid授予对firebase实时数据库部分的访问权限

根据uid授予对firebase实时数据库部分的访问权限,firebase,firebase-realtime-database,firebase-authentication,firebase-security,Firebase,Firebase Realtime Database,Firebase Authentication,Firebase Security,正如标题所示,我想让不同的用户访问数据库的不同部分。我仅在谷歌官方文档中找到以下内容: { "rules": { "users": { "$uid": { ".write": "$uid === auth.uid" } } } } 我想做的是允许访问数据库中任意命名的节点。例如,我想让多个用户访问同一个节点,但这种方法不起作用。我尝试了以下方法: { "rules": { "users": { "myNod

正如标题所示,我想让不同的用户访问数据库的不同部分。我仅在谷歌官方文档中找到以下内容:

{
  "rules": {
    "users": {
      "$uid": {
        ".write": "$uid === auth.uid"
      }
    }
  }
}
我想做的是允许访问数据库中任意命名的节点。例如,我想让多个用户访问同一个节点,但这种方法不起作用。我尝试了以下方法:

{
  "rules": {
    "users": {
      "myNode": {
        ".write": "auth.uid === 1EAwd9b6d9YloPlLpf0tpyztKR12"
      }
    }
  }
}
但它似乎不起作用


提前谢谢你的帮助

经过一点实验后,我发现错误只是字符串值需要加引号。因此正确的代码是:

{
  "rules": {
    "users": {
      "myNode": {
        ".write": "auth.uid === '1EAwd9b6d9YloPlLpf0tpyztKR12'"
      }
    }
  }
}

您需要将字符串值放在引号中。另外:如果希望规则特定于当前用户,请使用
auth.uid
。所以:
“.write:“auth.uid=='1EAwd9b6d9YloPlLpf0tpyztKR12'”
。我强烈建议您端到端阅读Firebase数据库安全指南,因为它包含了更多信息:@FrankvanPuffelen我刚刚通过一点实验发现了这一点,但无论如何还是要感谢您!另外:我阅读了Firebase数据库安全指南,但没有找到解决问题的方法there@FrankvanPuffelen您指出的“$uid”错误只是stackoverflow问题中的一个输入错误。在我的原始代码中,我使用了“auth.uid”