验证newData是否是具有firebase数据库规则的数组

moh*_*bee 1 firebase firebase-security firebase-realtime-database

有没有办法验证newData是否是firebase规则中的数组?就像是 :

"node" : { ".validate" : "newData.isArray()" }
Run Code Online (Sandbox Code Playgroud)

Fra*_*len 7

没有规则来检测数据是否是数组.

Firebase本身不存储数组.它将数据存储为常规JSON对象,数字作为键.所以

["one", "two", "three"]
Run Code Online (Sandbox Code Playgroud)

存储为:

"0": "one"
"1": "two"
"2": "three"
Run Code Online (Sandbox Code Playgroud)

您可以检查数据是否有子项0:

".validate" : "newData.child("0").exists()"
Run Code Online (Sandbox Code Playgroud)

但这又是经验丰富的Firebasers通常建议不要使用数组的众多原因之一.有关更多原因,请参阅此博客文章.