繁体   English   中英

Firebase验证规则正则表达式不起作用

[英]Firebase validate rule regex not working

我无法在Firebase Simulator中使用它,而且我也不明白为什么。 我在页面上制作了一个“收藏夹”按钮,并带有一个计数器,该计数器跟踪被收藏的次数。 我想将金额存储在Firebase数据库中。 所以这是我的规则:

{
  "rules": {
    "favorited": {
      ".validate": "newData.isNumber() && newData.val().matches(/[0-9]/) && newData.val().length < 10",
      ".read": true,
      ".write": true
    }
  }
}

写入应该是一个只能包含0到9并且少于10个字符的整数。

我已经在以下路径上使用以下JSON数据对其进行了测试:

/favorited/

-

{
  "foo": 123
}

这样会在验证中出现写错误。 我究竟做错了什么?

问题是您在数字而不是字符串上使用正则表达式。 而且数字也没有length属性。

文档中

正则表达式文字可用于验证客户端提供的字符串。 使用string.matches(/pattern/)测试字符串是否符合正则表达式模式。

您可以使用:

newData.isNumber() && newData.val() < 1000000000

因为1000000000是其中包含10位数字的最小数字。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM