-1
我正在尝试在Firebase中为项目做一个项目。这是我正在做的。我使用的是电子邮件身份验证,当用户使用电子邮件和密码注册时,我的应用程序会获取他的姓名并使用其用户标识添加到Firebase数据库。 这里是火力地堡数据库I设置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)
的数据,第二个孩子所有公共添加成功,但它不能添加上面的第一个孩子,说权限被拒绝。 这是它在控制台中所说的。
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
首先,我想这是因为我尚未签署。所以,我想在注册后登录,然后将数据添加到数据库,但仍是同样的错误。 请帮我这个。我真的被困在这里。
所以,这不符合我的数据库的权限问题?因为它说权限被拒绝。 –
数据库不允许该操作,因为您的代码无法打开可选值。如果仔细检查错误消息,您会看到它包含'Optional(“klvexHq3GOQ4IiWpOs4WP7H4pmy1”)',它不是用户的UID。 –