我正在尝试访问经过身份验证的用户文档,如果uid匹配,则将参数添加到“用户”集合内的文档中。
错误消息如下:
Error Domain=com.firebase Code=1 "Permission denied" UserInfo={NSLocalizedDescription=Permission denied}.
尽管该错误表明这是一个权限问题,但是当我将子集合更改为无效路径时,也会显示相同的错误。我还更改了规则,无论身份验证如何都允许读写,并且显示相同的错误。
保存数据的代码:
//save the user data to firebase
func saveData(){
//check if user is signed in
guard let userID = Auth.auth().currentUser?.uid else {
return
}
ref = Database.database().reference()
self.ref.child("users").child(userID).setValue(["name": userName) {
(error:Error?, ref:DatabaseReference) in
if let error = error {
print("Data could not be saved: \(error).")
} else {
print("Data saved successfully!")
}
}
}
数据库规则:
service cloud.firestore {
match /databases/{database}/documents {
// Make sure the uid of the requesting user matches name of the user
// document. The wildcard expression {userId} makes the userId variable
// available in rules.
match /users/{userId} {
allow read, update, write, delete: if request.auth.uid == userId;
}
}
}