【问题标题】:Firebase Security + Swift - Not able to read dataFirebase Security + Swift - 无法读取数据
【发布时间】:2020-10-23 18:37:33
【问题描述】:

在读取数据时遇到一些问题。根据我的安全规则,我可以写得很好。请参阅下文,了解我在 swiftui 代码中的查询和我的安全规则。对于上下文,我有一个 users 集合和一个 routines 集合。每个例程文档都有一个与用户相关联的 uid。任何人都知道为什么我在这里可能无法正确阅读(这会影响我随后的写作能力?

安全规则

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{userId} {
      allow read, write: if request.auth != null && request.auth.uid == userId;
    }
    match /routines/{routine} {
        allow write: if request.auth != null && request.auth.uid == request.resource.data.uid;
      allow read: if request.auth != null && resource.data.uid == resource.data.uid;
    }
  }
}

Swift 查询代码

func updateRoutine() {
    db.collection("routines").whereField("name", isEqualTo: "temp routine").getDocuments() { (querySnapshot, err) in
        if let err = err {
            print("Error getting documents: \(err)")
        } else {
            for document in querySnapshot!.documents {
                self.db.collection("users").document(self.currUser?.uid ?? "").updateData(["routinePreference": document.documentID])
                self.db.collection("routines").document(document.documentID).updateData(["name": "another temp routine"])
                return
            }
        }
        
    }
}

编辑 这是我得到的错误:

获取文档时出错:Error Domain=FIRFirestoreErrorDomain Code=7 “缺少权限或权限不足。” UserInfo={NSLocalizedDescription=缺少权限或权限不足。} 2020-07-03 01:43:24.440221-0400 TestRulesApp [58965:7804974] 6.26.0 - [Firebase/Firestore][I-FST000001] 在例程中侦听查询失败: 缺少权限或权限不足。

【问题讨论】:

  • 您从 Firestore 收到的错误是什么?
  • 已编辑以显示我遇到的错误

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


【解决方案1】:

您在此处更新数据。使用的技术是传入字段值等于现有字段值。所以你应该有你的更新规则allow update:if request.resource.data.uid == resource.data.uid;

【讨论】:

  • 该更改仍然出现错误:/ 获取文档时出错:错误 Domain=FIRFirestoreErrorDomain Code=7 “权限缺失或不足。” UserInfo={NSLocalizedDescription=缺少或权限不足。} 2020-07-06 22:35:00.347512-0400 TestRulesApp[51974:1113913] 6.26.0 - [Firebase/Firestore][I-FST000001] 在例程中侦听查询失败:缺少权限或权限不足。
猜你喜欢
  • 2015-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-26
  • 1970-01-01
  • 2021-12-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多