firebase数据库规则允许对具有特定信息的特定用户进行读/写

cpl*_*lus 3 security firebase firebase-realtime-database

我的firebase数据库规则如下所示:

    {
      "rules": {
        "users": {
          "$uid": {

            ".read": "auth != null || root.child('users').child(auth.uid).child('role').val() == 'teacher'",
            ".write": "auth != null || root.child('users').child(auth.uid).child('role').val() == 'teacher'"

          }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的目标是:

  • 每个用户只能读/写他们的OWN数据.
  • 只有名为"role"的相应子项中定义了值为"teacher"的用户才能读取/写入其他用户的所有数据.

    如何实现此规则设置?

Fra*_*len 5

这似乎是你正在寻找的:

{
  "rules": {
    "users": {
      ".read": "root.child('users').child(auth.uid).child('role').val() == 'teacher'",
      ".write": "root.child('users').child(auth.uid).child('role').val() == 'teacher'",
      "$uid": {
        ".read": "auth.uid == $uid",
        ".write": "auth.uid == $uid"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

有了这个:

  • 教师对整个users节点具有读写权限
  • 其他用户只对自己的节点具有读写权限