我对Firebase数据库验证规则的几个方面不清楚,并且已经阅读了几次文档,具体情况如下:
我的数据方案是这样的:
{
"aNumber" : 0.794180524700695,
"clicks" : 11
}
我当前的验证规则是这样的:
{
"rules": {
".validate": "newData.child('aNumber').isNumber()",
".read": true,
".write": true
}
}
该规则当前允许在“ aNumber”为数字的情况下进行写操作,但我还要验证“ clicks”字段是否为数字。
我尝试使用and运算符(&&):
{
"rules": {
".validate": "newData.child('aNumber').isNumber() &&
newData.child('clicks').isNumber()",
".read": true,
".write": true
}
}
但是,当我仅更新一个字段时,它就会失败:
{
"aNumber": 2
}
我将如何对此进行验证?一般而言,验证多个独立字段的好方法是什么?
谢谢
因此,经过一些试验,我找到了自己的问题的答案:
我的新规则如下所示:
{
"rules": {
".read": true,
".write": true,
"aNumber": {
".validate": "newData.isNumber()"
},
"clicks": {
".validate": "newData.isNumber()"
}
}
}
因此,验证不是在全局中针对特定的子节点进行验证,而是在规则中的特定节点级别进行,这对某些人来说可能是显而易见的,但我花了一些时间才意识到。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句