Firebase验证规则无效

时间:2016-08-01 01:53:39

标签: ios database swift firebase firebase-security

我使用的是Firebase& iOS并尝试验证用户何时尝试提交评论。

以下是我的规则:

{
  "rules": {
    "comments": {
      ".read": true,
      ".write": "auth.uid != null",
      "$comment_id": {
        ".validate": "newData.isString() && newData.val().length < 100"
      }
    }
  }
}

这是我的数据库结构: enter image description here

成功发布的评论是我删除".validate"部分的时间。我还尝试将".validate": "newData.isString() && newData.val().length < 100"放在$comment_id区域之外,但这仍然导致失败。

无论如何,当我尝试添加评论时,我从模拟器中收到此错误: enter image description here

为什么我的".validate"工作不正常?我错过了什么?

1 个答案:

答案 0 :(得分:1)

您的数据路径为/comments/$comment_id/comment。您的验证规则不适合那里的最后comment

{
  "rules": {
    "comments": {
      ".read": true,
      ".write": "auth.uid != null",
      "$comment_id": {
        "comment": {
          ".validate": "newData.isString() && newData.val().length < 100"
        }
      }
    }
  }
}

这些规则可行。但我可能会更新数据结构以删除comment节点,因为它不会添加任何值。