Firestore 规则只允许文档所有者更新它,其他人更新某些字段

时间:2021-03-30 08:24:32

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

希望创建一个仅允许文档所有者更新它或其他用户仅更新某些字段的 Firestore 规则。

这是我的规则

match /users/{userID} {
  allow update: if request.auth.uid == userID || (request.auth.uid != null && request.resource.data.keys().hasOnly(["field1","field2"]));
}

它返回 Permission Denied On

await _db.collection("users").doc(userID).update({
  "field1": field1,
  "field2": field2,
});

1 个答案:

答案 0 :(得分:3)

请看一下这段代码。它只允许其他人修改字段 barfoo

function isOwner() {
    return request.auth != null && request.auth.uid == userId;
}

allow update: if isOwner() || resource.data.diff(request.resource.data).affectedKeys().hasOnly(["bar", "foo"]);