[英]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.