我正在解决这个问题。我正在尝试从子集合中获取文档,如下所示:
func getTransactions(completion: ((_ data: [Any]?) -> Void)? = nil ) {
if let fbUser = Auth.auth().currentUser {
let uid = fbUser.uid
//Make a call to the Database to load the user
db.collection("users").document(uid).collection("transactions")
.getDocuments(completion: { (snapshot, error) in
if error != nil {
print(error)
}
})
} else {
print("What")
}
}
从理论上讲,这应该可以正常工作,尤其是因为我的规则是这样的
match /users/{user_id} {
allow get, create: if request.auth.uid != null
allow update, delete: if request.auth.uid == user_id
}
match /users/{user_id}/transactions/{id=**} {
allow read, get, create: if request.auth.uid != null
allow update, delete: if request.auth.uid == user_id
}
match /users/{user_id}/secret {
allow read, write: if false
}
但是当我运行该功能时,我收到了很好的“缺少权限错误”。
错误域= FIRFirestoreErrorDomain代码= 7“缺少权限或权限不足。 UserInfo = {NSLocalizedDescription =缺少权限或权限不足。}
更令人困惑的是,我可以将// //写入//到适当的位置,并提取{user}文档上的所有信息,但我无法...访问事务(或测试) ,出于某种原因)子集合。
有帮助吗?有想法吗?输入?