【发布时间】: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