我使用的是Firebase& iOS并尝试验证用户何时尝试提交评论。
以下是我的规则:
{
"rules": {
"comments": {
".read": true,
".write": "auth.uid != null",
"$comment_id": {
".validate": "newData.isString() && newData.val().length < 100"
}
}
}
}
成功发布的评论是我删除".validate"
部分的时间。我还尝试将".validate": "newData.isString() && newData.val().length < 100"
放在$comment_id
区域之外,但这仍然导致失败。
为什么我的".validate"
工作不正常?我错过了什么?
答案 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
节点,因为它不会添加任何值。