2016-03-20 41 views
0

Aşağıdaki gibi bir veri yapısını varsayarsak, yeni araba eklemeye izin vermeyen bir kural istiyorum, örneğin kullanıcılar "toyota" ekleyemez. Bu yüzden, .update'in var olan bir make ile eşleşmesi gerektiği gibi.Veri Doğrulama için Firebase Kuralı

".validate": "newData.val(). Includes ($ cars)" ile $ arabalar kullanmaya ve şanssız her türlü başka yolları denedim. Herhangi bir yardım takdir edilir.

Benim kodudur:

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 benziyor:

{ 
"cars" : { 
    "chevrolet" : { 
     "silverado" : { 
     "id192874623" : true, 
     "id786766663" : true 
     } 
    }, 
    "ford" : { 
     "taurus" : { 
     "id736273627" : true 
     } 
    }, 
    "honda" : { 
     "accord" : { 
     "id635263535" : true 
     } 
    } 
}} 
+0

Güvenlik kurallarını zaten yazmayı denediyseniz, bunları sorunuza ekleyin. Sıfırdan başlamak zorunda kalmadan neyi yanlış yaptığınızı görmemize izin veriyor. –

cevap

2

yeni araba markaları ekleyerek izin vermemek için:

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

Bu, existing data vs new data bölümünde kaplıdır Dökümantasyon.

+0

Çalışıyor. Teşekkürler Frank. –

İlgili konular