火力地堡规则验证失败
我有用户查询看起来是这样的:包括[用户名] [UID] 火力地堡规则验证失败
我想使用户名只包含字符和数字。
"user_lookup": {
".read": "auth !== null",
"$username": {
".write": "!data.exists()",
".validate": "
newData.val().matches(/^[a-z][a-z0-9]*([._-][a-z0-9]+)*$/) &&
newData.isString()",
"$uid": {
".validate": "newData.val() == auth.uid"
},
我得到验证失败。如果我添加验证它将会失败并不重要。
任何提示将不胜感激。
模拟器截图:
你写了一个JSON对象:
{
"wewe": "xxxa"
}
所以,您的验证这两部分会失败:一个JSON对象既不是一个字符串没有做它匹配正则表达式。
为了使验证工作,写我们的正则表达式匹配的字符串值:
"xxxa"
无论如何,它的失败https://i.gyazo.com/c0391fce9467f123179e23bd9f62858f.png我认为孩子们不能在那里添加验证,感谢您的帮助,我会尝试另一种方法来做到这一点。这是在这样的用户名和用户名之间切换:https://i.gyazo.com/46c48dc94d75e8c508d70cde94c575a6.png – Sam
在你的第一个截图中,你仍然写一个复杂的JSON对象。这意味着**'newData.val()'不是一个字符串**,所以你不能调用'length'。 –
所以这意味着我无法验证,使用户名长度至少4个字符?直到我改变到第二个截图所示的另一种方法吧? – Sam
@CNuts $ UID工作正常,验证在$ USERNAME没有工作即时得到验证失败,我想使“user_lookup”如果它不包含字符和数字,将不会创建孩子。 – Sam
您可以显示代码(或模拟器的屏幕截图):显示正在写入的值,写入的位置以及验证数据? –
@FrankvanPuffelen好的,在这里你是https://i.gyazo.com/efc25cf15694e87da090ce226adbae44.png,如果我删除验证它成功https://i.gyazo.com/d33fa4158ae00d9cf4a7d2a5791810e9.png但我想只写字符和数字为用户名。 – Sam