小编Kar*_*tik的帖子

Firebase 实时数据库 - 如果值为 null,则读取路径时权限被拒绝

我正在尝试读取 Firebase 实时数据库中的路径/users/uid1,其中该路径的值为null。实际上,它并不存在。我的安全规则允许在路径上读取(规则如下)。实际读取数据时,权限被拒绝。

安全规则如下:

{
  "rules": {
    "users": {
      "$uid": {
        ".read": "root.child('users').child($uid).child('mUser_Role').child('mRole_PermissionLevel').val() > 400 || root.child('users').child(auth.token.phone_number).child('mUser_Role').child('mRole_PermissionLevel').val() == 500"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

由于权限被拒绝,尝试阅读/users/uid1失败。/users/myuid/mUser_Role/mRole_PermissionLevel == 500true

当 value 为 时,Firebase 如何确定应拒绝权限null?难道不应该允许这种读取并返回dataSnapshotwhere dataSnapshot.exists()returnsfalse吗?

我没有data在路径上指定任何规则null,并且当路径上的值不是时读取成功null


编辑 - 要重现此场景 -

1. 将 JSON 上传到 Firebase 实时数据库的根目录-

{
  "users" : {
    "+9198100xxxxx" : {
      "mUser_Id" : "+9198100xxxxx",
      "mUser_ProfilePicUrl" : "url",
      "mUser_Role" : {
        "mRole_Name" …
Run Code Online (Sandbox Code Playgroud)

firebase firebase-security firebase-realtime-database

5
推荐指数
1
解决办法
591
查看次数