我通读了the docs,而且我不确定写规则和验证规则部分之间的区别。这个代码是多余的吗?使用其中一个或两者的任何一点?
具体来说:
{
"rules": {
"users": {
".validate": "auth != null && newData.val() === auth.uid",
"$user_id": {
".write": "$user_id === auth.uid"
}
}
}
}
答案 0 :(得分:5)
唯一区别在于.validate不会传播给其子级。
回答你的问题,在你的例子中你可以只使用“.write”。
".write": "auth != null && $user_id === auth.uid"
答案 1 :(得分:0)
从技术上讲,可能没有(传播除外)任何差异,但在我看来存在差异。
例如,安全性是.write
的主要关注点,而数据完整性是.validate
的主要关注点。
例如:
考虑一下我们正在写/books/{bookKey}/name
路径。
.write
的问题。可以在此处执行用户登录等检查。.validate
的关注点。例如,名称长度应超过3个字符,必须以字符开头...... P.S。 考虑到多行的this问题,最好有两个单独的方法以提高可读性。