如何在firebase中创建必需的字段验证

时间:2015-02-13 23:08:54

标签: firebase firebase-security

我所需的字段验证规则似乎在仪表板规则模拟器中有效,但是当我试用它时我得到了许可。我是否正确设置了? (.msg是消息文本)

{
    "rules": {
      "messages":{
        ".read": "auth.uid !== null",
        ".write": "auth.uid !== null",
        ".validate": "newData.child('msg').exists()",
        "uid": {
          ".validate": "auth.uid === newData.val()"
        }
      }
    }
}

我也在.validate

中尝试了这种语法
".validate": "newData.hasChildren(['msg','uid','uname'])"

这也为我抛出了一个允许拒绝的错误。

这是ios代码

   func sendMessage(text: String!) {
        // *** STEP 3: ADD A MESSAGE TO FIREBASE
        messagesRef.childByAutoId().setValue([
            "msg":text,
            "uname":self.senderDisplayName,
            "uid":self.senderId
            ])
    }

1 个答案:

答案 0 :(得分:6)

我只需要将动态消息id添加到json

{
    "rules": {
      "messages":{
        ".read": "auth.uid !== null",
        ".write": "auth.uid !== null",
       "$message_id":{
           ".validate": "newData.child('msg').exists()",
           "uid": {
             ".validate": "auth.uid === newData.val()"
           }
        }
      }
    }
}