【问题标题】:Firebase permission denied with security rulesFirebase 权限被安全规则拒绝
【发布时间】:2016-11-27 23:16:03
【问题描述】:

这是我在 Firebase 中的数据库中的 JSON,我想做一些规则,比如 auth,但我收到一个错误,我不知道该怎么做:

"users" : {
    "0BuRcGEZQRUaQ5T2gQf4RDUcuZE2" : {
      "address" : "La Prensa",
      "email" : "ougishura_5421@hotmail.com",
      "id" : "0BuRcGEZQRUaQ5T2gQf4RDUcuZE2",
      "lastName" : "Vega",
      "middleName" : "Paul",
      "name" : "Christian",
      "nroDocument" : "171645220",
      "phoneNumber" : "1234567890",
      "rol" : "administrador",
      "secondLastName" : "Niama"
    }
}

这些是我正在使用的规则:

{
  "rules": {
      "users": {
        "$user_id": {
          ".read": "auth != null",
          ".write": "auth.uid === $user_id"
        }
      }
   }
}

错误:

angular.js:13550 错误:permission_denied at /users:客户端无权访问所需数据。

这是我在网络应用程序中遇到的错误。我看不到我注册的用户。但是当我停止使用$user_id 时,它就可以工作了。我认为这个变量没有得到我的价值。

代码:

resultUsers : function () { 
    var ref = pharmacyFactory.ref.child("users"); 
    var result = $firebaseArray(ref); 
    return result; 
},

【问题讨论】:

  • 您的问题中没有任何内容可以读取或写入数据,因此没有任何内容可以引发权限被拒绝错误。如果没有看到重现错误的最小代码,将很难回答。
  • angular.js:13550 错误:permission_denied at /users:客户端无权访问所需数据。这是我在我的网络应用程序中遇到的错误,我看不到我已注册的用户,但是当我停止使用 $user_id 它工作时,我认为该变量没有得到我的价值
  • @StevenSparkies 请添加您用于检索用户数据的代码。
  • @adolfosrs resultUsers : function () { var ref = pharmacyFactory.ref.child("users"); var 结果 = $firebaseArray(ref);返回结果; },

标签: angularjs firebase firebase-realtime-database


【解决方案1】:

问题是您使用$firebaseArray(ref) 来跟踪整个/users 分支,但您将读取规则放在/users/user_id 中。 因此,由于您在 /users 中没有读取规则,它将设置默认值 false

如果您希望用户拥有对整个 /users 分支的读取权限但只写入他自己的用户数据,您可能有兴趣执行以下操作:

{
  "rules": {
      "users": {
        ".read": "auth != null",
        "$user_id": {
          ".write": "auth.uid === $user_id"
        }
      }
   }
}

如果您希望用户只看到他自己的用户,那么您应该使用$firebaseObject(ref.child(userId)) 而不是$firebaseArray。并使用您的规则,如下所示:

{
  "rules": {
      "users": {
        "$user_id": {
          ".read": "auth.uid === $user_id",
          ".write": "auth.uid === $user_id"
        }
      }
   }
}

【讨论】:

  • 谢谢你的完美....但是如果我只想让用户看到他自己的用户而不是其他用户,我该怎么办
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-22
  • 2020-08-16
  • 1970-01-01
  • 2019-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多