在Firebase数据库中使用多个验证规则

基诺

我对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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章