请考虑以下规则:
"list" : {
"$item" : {
".validate": "newData.hasChildren(['field1', 'field2'])",
"field1" : {
".validate": newData.isString()
},
"field2" : {
".validate": newData.isString()
},
"$other" : {
".validate": false
}
}
}
}
它应该只允许您构建特定类型的对象列表。但是,没有什么可以阻止以下情况:
{
"list" : "i've been hacked"
}
我唯一能想到的就是将其添加到“列表”规则中:
".validate": "!newData.isString() && !newData.isNumber() && !newData.isBoolean()"
..这有点笨拙。有没有更好的方法来执行这一点,或者我的整个方法只是错误的?