首页 > 解决方案 > Firestore .setData 被未创建的更新规则阻止

问题描述

我在这里发现有人遇到类似问题Firebase Firestore .set 正在更新而不是创建(跳过规则)并且没有答案。

我有一个安全规则,允许任何人在路径上创建文档,但只允许所有者编辑已经存在的文档。更新安全规则阻止创建。我猜我对规则的工作方式有一些误解。如果我删除更新规则,一切正常。

  match /users_real/{userID} {
    allow create: if true;
    allow read: if isOwner(userID);
    allow update: if ((request.writeFields.size() == 1) && 
    (('ptypes' in request.writeFields) || ('ptypes' in request.writeFields))  && isOwner(userID));           
  }

设置数据:

self.docRef.collection("users_real").document("adfadsf").setData(post) { (error) in

            if let error = error {
                print("He dead!: \(error.localizedDescription)")


            }
            else {
                print("it worked, for now")


            }
        }

标签: firebasegoogle-cloud-firestoreswift4firebase-security

解决方案


推荐阅读