您是否必须逐个对所有数据字段执行.validate操作,或者是否可以使规则在某些字段上级联而不在其他字段上级联?
因为目前,只有1个字段可以在我的规则中执行我想要的操作,而另一个字段将忽略验证。
示例:
{
"rules": {
"users": {
".read": "auth != null",
"$uid": {
".write": "$uid === auth.uid",
"kills": {
//THIS ONE GETS IGNORED
".validate": "newData.isNumber() && newData.val() == data.val() +1",
},
"deaths": {
//THIS ONE WORKS.
".validate": "newData.isNumber() && newData.val() == data.val() +1",
"score": {
".validate": "newData.isNumber() && newData.val() == data.val() +100",
}
}
}
}
}
}发布于 2021-03-26 21:54:07
您可以使用wildcard cpture variable创建适用于所有子项的规则,但具有命名规则的子项除外。
如果您的现有规则对kills和deaths具有相同的验证,则可以将它们缩短为以下内容并获得相同的结果:
{
"rules": {
"users": {
".read": "auth != null",
"$uid": {
".write": "$uid === auth.uid",
"$other": {
".validate": "newData.isNumber() && newData.val() == data.val() +1",
}
}
}
}
}但这意味着您将失去deaths/score的专用验证,因为您不能覆盖通配符的单个命名子项。
https://stackoverflow.com/questions/66818139
复制相似问题