【问题标题】:How to set firebase security rules in order to allow only update of certain fields in document?如何设置 Firebase 安全规则以仅允许更新文档中的某些字段?
【发布时间】:2021-05-06 00:47:35
【问题描述】:

我想知道如何实现我的用户 具有以下字段:uid、朋友、通知、名称、用户名。 目前我的用户文件夹的安全规则如下所示

function signedIn() {
  return request.auth.uid != null;
}

match /users/{user} {
  allow read, update, write: if signedIn();
}

那么我怎样才能为更新制定规则:“条件”, 这样只有朋友和通知是可更新的, 但不是用户名、uid 或名称。有什么想法吗?

【问题讨论】:

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


    【解决方案1】:

    您正在寻找map diffs

    例如:

    request.resource.data.diff(resource.data).affectedKeys()
           .difference("username", "uid", "name"].toSet()).size() === 0;
    

    或更短:

    !request.resource.data.diff(resource.data).affectedKeys()
            .hasAny("username", "uid", "name"];
    

    另见:

    【讨论】:

    • 所以这段代码想要“保护”为用户名、uid 和 name 设置的值并使其不可更改?
    猜你喜欢
    • 2020-09-18
    • 2017-10-08
    • 2021-07-08
    • 2020-09-22
    • 2020-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-28
    相关资源
    最近更新 更多