【问题标题】:Firebase Security Rules: Public vs. Private DataFirebase 安全规则:公共数据与私有数据
【发布时间】:2013-11-22 09:26:34
【问题描述】:

我有一个签名集合,其中每个签名都有几个属性:public:全名、城市和电子邮件。

我想保持电子邮件属性的私密性,并且一直在努力编写正确的规则以仅返回全名和城市。这是我的 rules.json 到目前为止的样子:

{
    "rules": {
        "signatures": {
            "$signatureID": {
                "public": {
                    ".read": true
                },
                "email": {
                    ".read": false
                }
            }
        }
    }
}

当我转到 /signatures 端点时,我希望收到一组带有公共数据的签名,而不是收到电子邮件地址。

到目前为止,我还没有任何运气让它按照我想要的方式工作。难道我做错了什么?我应该以不同的方式构建数据吗?

【问题讨论】:

    标签: firebase firebase-security


    【解决方案1】:

    关于安全规则,Firebase 操作是孤注一掷。

    因此,尝试加载 /signatures 处的所有数据将失败,因为您的客户端无权读取该位置的所有数据,尽管您确实有权读取 一些 em> 那里的数据。同样,写入位置的行为方式相同,并且需要完全许可才能继续操作。

    要处理此用例,请考虑像这样重构您的数据:

    {
      "rules": {
        ".read": false,
        ".write": false, 
        "signatures-public": {
          ".read": true,
          "$signatureID": {
            // ... public data here
          }
        },
        "signatures-private": {
          "$signatureID": {
            // ... private data here
          }
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-24
      • 1970-01-01
      • 2016-09-16
      • 2018-05-16
      • 2018-03-17
      • 2018-09-03
      • 2020-06-03
      • 2020-04-25
      相关资源
      最近更新 更多