Firebase安全规则:防范保留字符

时间:2016-06-05 18:06:43

标签: firebase firebase-realtime-database firebase-security

Firebase有一些保留字符:

., $, #, [, ], /

如何阻止这些字符在安全规则中添加到我的数据库中?

2 个答案:

答案 0 :(得分:1)

.validatematches()一起使用。 matches()接受正则表达式。 contains()检查字符串是否包含指定的值。

如果您正在编写如下对象:{"post": "he.lo"}

".validate": "!(newData.child('post').val().matches(/[.$\/#]/) || newData.child('post').val().contains(']') || newData.child('post').val().contains('['))"

如果你只是写一个字符串:“he.lo”

".validate": "!(newData.val().matches(/[.$\/#]/) || newData.val().contains(']') || newData.val().contains('['))"

我尝试了一段时间来包含“[”和“]”,但Firebase不喜欢它们,这就是我添加contains()方法的原因。

这些规则将用于检查值,正如@Frank所说,不是键。

参考:Firebase 3.0 Security Rules

答案 1 :(得分:0)

这些字符不能在数据库中使用,但可以在数据库值中使用。

Firebase数据库会自动拒绝在密钥中出现此类字符的写入操作,您无需为此编写任何规则。