创建父母与孩子不同的Firebase规则

时间:2019-01-28 04:53:51

标签: javascript firebase web firebase-realtime-database

我无法在Firebase Realtime数据库中编写完成我想要的规则的规则。

我的数据库的结构如下:

{
  "tokens": {
    "-LWzK8PLDtDQhiTp_Els": {
      "token": "exampleToken",
      "uid": "c5vrppXCwbeo22hFCSlW3CBq5el1"
    },
    ...
  }
}

{
  "rules": {
    "tokens": {
      ".indexOn": ["uid", "token"],
      ".read": "auth != null",
      ".write": "auth != null",
      "$token": {
        ".validate": "newData.hasChildren(['uid', 'token']) && newData.child('uid').val() == auth.uid"
      }
    }
  }
}

我希望用户能够(1)读取token中的现有子节点,其中token.uid == auth.uid和(2)将新的子节点写入token,但是(3)不读取整个token节点。

目前,提供的规则允许任何经过身份验证的用户读取和写入token中的各个节点以及整个token节点,由于敏感数据可能位于另一个子节点中,因此这是不安全的token中的任何给定用户都不应该访问的节点。我尝试的一切都太宽松或太严格,我无法找出完美的中间立场。

0 个答案:

没有答案