用于数据验证的 Firebase 规则
Firebase Rule for Data Validation
假设数据结构如下,我想要一个禁止添加新车品牌的规则,例如用户不能添加 "toyota"。所以,我需要 .validate 使得 .update 必须匹配现有品牌。
我尝试过将 $cars 与 ".validate": "newData.val().contains($cars)" 一起使用以及所有其他方式,但都没有成功。感谢任何帮助。
我的代码是:
function setModel(model,make,key){
if (model && make && key){
var carsRef = ref.child('cars');
var makeRef = carsRef.child(make);
var modelRef = makeRef.child(model);
var obj = {};
obj[key] = true;
modelRef.update(obj, onComplete);
}
}
Firebase 看起来像:
{
"cars" : {
"chevrolet" : {
"silverado" : {
"id192874623" : true,
"id786766663" : true
}
},
"ford" : {
"taurus" : {
"id736273627" : true
}
},
"honda" : {
"accord" : {
"id635263535" : true
}
}
}}
禁止添加新汽车品牌:
"cars": {
"$brand": {
".validate": "data.exists()"
}
}
文档的 existing data vs new data 部分对此进行了介绍。
假设数据结构如下,我想要一个禁止添加新车品牌的规则,例如用户不能添加 "toyota"。所以,我需要 .validate 使得 .update 必须匹配现有品牌。
我尝试过将 $cars 与 ".validate": "newData.val().contains($cars)" 一起使用以及所有其他方式,但都没有成功。感谢任何帮助。
我的代码是:
function setModel(model,make,key){
if (model && make && key){
var carsRef = ref.child('cars');
var makeRef = carsRef.child(make);
var modelRef = makeRef.child(model);
var obj = {};
obj[key] = true;
modelRef.update(obj, onComplete);
}
}
Firebase 看起来像:
{
"cars" : {
"chevrolet" : {
"silverado" : {
"id192874623" : true,
"id786766663" : true
}
},
"ford" : {
"taurus" : {
"id736273627" : true
}
},
"honda" : {
"accord" : {
"id635263535" : true
}
}
}}
禁止添加新汽车品牌:
"cars": {
"$brand": {
".validate": "data.exists()"
}
}
文档的 existing data vs new data 部分对此进行了介绍。