Ken*_*eno 3 database validation json firebase firebase-realtime-database
我不清楚 Firebase 数据库验证规则的几个方面,并且已经阅读了文档几次,我的具体案例/问题如下:
我的数据方案是这样的:
{
"aNumber" : 0.794180524700695,
"clicks" : 11
}
Run Code Online (Sandbox Code Playgroud)
我当前的验证规则是这样的:
{
"rules": {
".validate": "newData.child('aNumber').isNumber()",
".read": true,
".write": true
}
}
Run Code Online (Sandbox Code Playgroud)
该规则当前允许写入“aNumber”(如果它是数字),但我还想验证字段“clicks”是否为数字。
我尝试使用 and 运算符 (&&):
{
"rules": {
".validate": "newData.child('aNumber').isNumber() &&
newData.child('clicks').isNumber()",
".read": true,
".write": true
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我只更新一个字段时它会失败:
{
"aNumber": 2
}
Run Code Online (Sandbox Code Playgroud)
我将如何验证这一点?一般来说,验证多个独立字段的好方法是什么?
谢谢
因此,经过一些实验,我找到了自己问题的答案:
我的新规则如下所示:
{
"rules": {
".read": true,
".write": true,
"aNumber": {
".validate": "newData.isNumber()"
},
"clicks": {
".validate": "newData.isNumber()"
}
}
}
Run Code Online (Sandbox Code Playgroud)
因此,验证不是在全局范围内验证特定的子节点,而是在规则中的特定节点级别进行验证,这对某些人来说可能是显而易见的,但我花了一些时间才意识到。
| 归档时间: |
|
| 查看次数: |
1448 次 |
| 最近记录: |