获取Firestore子集合-权限被拒绝

时间:2018-12-27 01:42:04

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

我正在解决这个问题。我正在尝试从子集合中获取文档,如下所示:

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}文档上的所有信息,但我无法...访问事务(或测试) ,出于某种原因)子集合。

有帮助吗?有想法吗?输入?

Reference of the data structure, in case it's important

0 个答案:

没有答案