Firebase Swift:无法保存数据:权限被拒绝

时间:2020-06-07 12:42:04

标签: swift firebase google-cloud-firestore firebase-security

我正在尝试访问经过身份验证的用户文档,如果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;
    }
}
}

0 个答案:

没有答案