我无法在Firebase模拟器中使用它,我不明白为什么。我正在制作一个"最喜欢的"我的页面上的按钮,带有一个计数器,可以跟踪它被收藏的次数。我想将金额存储在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
}
这会在验证时出现写入错误。我做错了什么?
答案 0 :(得分:2)
问题是你在数字上使用正则表达式,而不是字符串。数字也没有length
属性。
正则表达式文字可用于验证客户端提供的字符串。使用
string.matches(/pattern/)
来测试字符串是否符合正则表达式模式。
您可以使用:
newData.isNumber() && newData.val() < 1000000000
由于1000000000
是最小的数字,其中包含10位数字。