【问题标题】:Permission denied to set value to Firebase database拒绝为 Firebase 数据库设置值的权限
【发布时间】:2017-09-24 18:39:58
【问题描述】:

在我的 firebase 数据库中,我设置了以下规则:

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

我正在使用 Firebase 开发 iOS 应用。我使用 Facebook 身份验证登录我的应用程序,我想在登录成功时将用户 ID 添加到数据库,这是我的代码:

let ref = Database.database().reference()
...
// I got uid 
ref.child("Users").setValue(uid)

但我得到了错误:

setValue: or removeValue: at /users failed: permission_denied

为什么?

【问题讨论】:

  • 你好,Leem,你有什么解决办法吗?

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


【解决方案1】:

您无权将值写入/users,因此操作被拒绝。

确实有权将值写入/users/$uid。您可能正在尝试执行以下操作:

ref.child("Users").child(uid).setValue(true)

【讨论】:

  • 谢谢,但我如何才能将 uid 添加到“用户”,仅适用于 Facebook 身份验证用户?正如我在问题中提到的,uid 是成功登录的用户(Facebook 登录)
  • 我分享的代码 sn-p 解决了您在问题中遇到的错误消息。如果您想额外检测用户是否使用 Facebook 登录,请参阅stackoverflow.com/questions/39056853/…
猜你喜欢
  • 2016-09-22
  • 2019-11-15
  • 2020-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-25
  • 2017-04-17
相关资源
最近更新 更多