假设有如下数据结构,我想要一个不允许添加新车的规则,例如用户无法添加“toyota”。所以,我需要.validate,以使.update必须匹配现有的make。
我尝试过使用带有“.validate”的$ cars:“newData.val()。contains($ cars)”以及所有其他没有运气的方法。任何帮助表示赞赏。
我的代码是:
function InsertBulk(obj) {
var collection = getContext().getCollection();
var collectionLink = collection.getSelfLink();
var count = 0;
if (!obj) throw new Error("The array is undefined or null.");
var docsLength = obj.docs.length;
if (docsLength == 0) {
getContext().getResponse().setBody(0);
}
tryCreate(obj.docs[count], callback);
function tryCreate(doc, callback) {
var isAccepted = collection.createDocument(collectionLink, doc, callback);
if (!isAccepted) getContext().getResponse().setBody(count);
}
function callback(err, doc, options) {
if (err) throw err;
count++;
if (count >= docsLength) {
getContext().getResponse().setBody(count);
} else {
tryCreate(obj.docs[count], callback);
}
}}
火焰基地看起来像:
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);
}
}
答案 0 :(得分:2)
禁止添加新的汽车品牌:
"cars": {
"$brand": {
".validate": "data.exists()"
}
}
本文档的existing data vs new data部分对此进行了介绍。