Firebase安全规则访问newData节点名称

时间:2019-05-28 18:28:22

标签: firebase firebase-realtime-database firebase-security firebase-security-rules

我找不到任何方法来访问Firebase规则中写入的数据名称,这对我来说非常关键。 Firebase规则支持这种东西吗?

"tests":{
    "$test":{

      ".read": "auth.uid != null",
     ".write": "auth.uid  != null
         "$user_id":{".validate": "newData.isBoolean() && auth.uid == NewData.NAME(?)"}

    }
  }

将要写入的样本数据:

{
  "YHer1txgZyReM8dEkSCTDg4l2ro1": true
}

示例数据库结构:

"tests":{
    "test1":{

       "YHer1txgZyReM8dEkSCTDg4l2ro1": true,
       "A4sfgYhred1festfsefsSRGFsgr3": true,
       "7JIsfgYhred1festfsefsSRGFsg8": true,

    }
 "test2":{

      "YHer1txgZyReM8dEkSCTDg4l2ro1": true,
      "A4sfgYhred1festfsefsSRGFsgr3": true,
      "7JIsfgYhred1festfsefsSRGFsg8": true,

    }
  }

1 个答案:

答案 0 :(得分:0)

使用newData.NAME(?)代替$user_id

所以:

 "tests":{
    "$test":{

      ".read": "auth.uid != null",
     ".write": "auth.uid  != null
         "$user_id":{".validate": "newData.isBoolean() && auth.uid == $user_id"}"

    }
  }

另请参阅securing user data上的Firebase文档,其中包含一个非常接近您需要的示例。