2016-03-20 4 views
0

Предполагая структуру данных, как показано ниже, я хочу правило, запрещающее добавлять новые модели автомобилей, например, пользователи не могут добавить «toyota». Поэтому мне нужно .validate, так что .update должен соответствовать существующему make.Правило пожарной базы для проверки данных

Я пробовал использовать $ cars с «.validate»: «newData.val(). Содержит ($ 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 
     } 
    } 
}} 
+0

Если вы уже пытались написать правила безопасности, добавьте их в свой вопрос. Это позволяет нам видеть, что вы можете делать неправильно, вместо того, чтобы начинать с нуля. –

ответ

2

Чтобы запретить добавление новых марок автомобилей:

"cars": { 
    "$brand": { 
    ".validate": "data.exists()" 
    } 
} 

Это рассматривается в разделе, посвященном existing data vs new data из документации.

+0

Это работает. Спасибо Фрэнку. –

Смежные вопросы