【发布时间】:2017-04-20 14:38:08
【问题描述】:
我想在我的 firebase 验证规则中实现这个正则表达式 https://regex101.com/r/9m7vMC/1/(它检查坐标纬度)。这是我的代码:
"coordinate": {
"latitude": {
".validate": "newData.isString() && newData.val().matches(/^(\\+|-)?(?:90(?:(?:\\.0{1,6})?)|(?:[0-9]|[1-8][0-9])(?:(?:\\.[0-9]{1,6})?))$/)"
}
}
我已经逃脱了+ 和.,因此有双反斜杠\\+ 和\\.
但是这段代码不起作用。当我尝试编写正确的纬度时,出现错误FIREBASE WARNING: update at / failed: permission_denied
【问题讨论】:
-
你有写权限吗?
-
是的,当我删除纬度验证时,一切正常。
-
在正则表达式文字中 - 而不是字符串文字 - 您只需要一个反斜杠来转义
+。您的\\+正在尝试匹配一个或多个反斜杠。 -
但是在保存(发布)过程中出现错误:
Error saving rules - Line 18: Invalid escape: '\+' -
我的错误。你说的对。它是 JSON,所以反斜杠被转义了。
标签: regex firebase firebase-realtime-database firebase-security