【问题标题】:Firebase rules (permission denied)Firebase 规则(权限被拒绝)
【发布时间】:2017-04-11 04:36:52
【问题描述】:

我正在尝试在 Firebase 中创建一个项目以进行练习。这就是我正在做的事情。我正在使用电子邮件身份验证,当有人使用电子邮件和密码注册时,我的应用程序会获取他的姓名并使用他的用户 ID 添加到 Firebase 数据库。 这是我在 Firebase 中设置的数据库

{
"rules": {
"users": {

  "$uid": {
      ".read": "auth != null && auth.uid == $uid",
      ".write": "auth != null && auth.uid == $uid",
    "items": {

      "$item_id": {
        "title": {
          ".validate": "newData.isString() && newData.val().length > 0"
        }
      }
    },
      "user-details":{
        "name" : {
          ".validate" : "newData.isString() && newData.val().length >= 0"
        }
      }
  }
},

"all-public" : {
  ".read" : "true",
    ".write" : "true"
}
  }
}

这是我写的 swift 代码。

var dbref = FIRDatabase.database().reference()
            dbref.child("users").child("\(user?.uid)").child("user-details").child("name").setValue(name)

            dbref.child("all-public").child((user!.uid)).setValue(name)

第二个孩子all-public的数据添加成功,但未能添加上述第一个孩子,并说权限被拒绝。 这是控制台中的内容。

2017-04-09 20:00:02.145 ToDo App[1573] <Warning> [Firebase/Database][I-RDB03812] setValue: or removeValue: at /users/Optional("klvexHq3GOQ4IiWpOs4WP7H4pmy1")/user-details/name failed: permission_denied
2017-04-09 20:00:28.426 ToDo App[1573] <Warning> [Firebase/Database][I-RDB03812] Listener at /users/klvexHq3GOQ4IiWpOs4WP7H4pmy1/items failed: permission_denied

首先我认为这是因为我还没有登录。所以我尝试在注册后立即登录,然后将数据添加到数据库中,但仍然是同样的错误。 请帮我解决一下这个。我真的被困在这里了。

【问题讨论】:

    标签: ios swift firebase-realtime-database


    【解决方案1】:

    由于user是可选的,所以需要先提取它的值:

    var dbref = FIRDatabase.database().reference()
    if let uid = user?.uid {
      dbref.child("users").child("\(uid)").child("user-details/name").setValue(name)
      dbref.child("all-public").child((uid)).setValue(name)
    }
    

    Firebase uploading file getting optional string in filename

    【讨论】:

    • 那么,这不是我的数据库权限的问题吗?因为它说权限被拒绝。
    • 数据库不允许该操作,因为您的代码无法解开可选值。如果您仔细检查错误消息,您会看到它包含Optional("klvexHq3GOQ4IiWpOs4WP7H4pmy1"),这不是用户的 UID。
    猜你喜欢
    • 2020-08-16
    • 2016-11-27
    • 1970-01-01
    • 2019-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-25
    相关资源
    最近更新 更多