我所需的字段验证规则似乎在仪表板规则模拟器中有效,但是当我试用它时我得到了许可。我是否正确设置了? (.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
])
}
答案 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()"
}
}
}
}
}