Firebase 实时规则

Firebase RealTime Rules

我的应用程序有一个管理面板,我想设置 firebase 规则,这样只有管理员才能在某些 firebase.Child

中放置新产品或项目

我希望 child(“管理员”)中的唯一用户可以写入其他类别,如工作、私人、视频,那么如何根据参考制作 child就像管理员只能访问其他 children ?

这是我当前的 firebase-RealTime 规则。

  {
  "rules": {
    "Admins": {
      ".read": true,
      ".write": false
    },
    "Users": {
        ".read": true,
            ".write": true,
          ".validate": "newData.hasChildren(['name', 'phoneNumber', 'uid'])",
          "name": {".validate": true},
          "phoneNumber": {".validate": true},
          "uid": {".validate": true},
          "$other": {".validate": false}
    },
    "PrivateWork": {
      ".read": "auth.uid != null",
        ".write": false
    },
    "Likes": {
      ".read": "auth.uid != null",
        ".write": "auth.uid != null"
    },
    "Work": {
      ".read": "auth.uid != null",
        ".write": false
    },
    "videos": {
      ".read": "auth.uid != null",
        ".write": false
    }
  }
}

要允许管理员全局写入访问权限,您可以像这样添加一个顶级规则:

{
  "rules": {
    ".write": "root.child('Admins').child(auth.uid).exists()",
    "Admins": {
      ...

permission cascades downwards 开始,这也将授予他们访问所有子节点的权限。