[英]Firebase rules (permission denied)
我正在嘗試在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"
}
}
}
這是我寫的快速代碼。
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
首先,我認為這是因為我尚未登錄。所以我嘗試在注冊后立即登錄,然后將數據添加到數據庫中,但仍然是相同的錯誤。 請幫我解決一下這個。 我真的被困在這里。
由於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)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.