2016-03-20 15 views
0

以下のようなデータ構造を仮定すると、新しい車の追加を禁止するルールが必要です。たとえば、ユーザーは「toyota」を追加できません。ですから、.updateが既存のmakeと一致するように.validateする必要があります。データ検証用のFirebaseルール

私は$ car with "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 
     } 
    } 
}} 
+0

既にセキュリティルールを書き込もうとしている場合は、質問に追加してください。それは最初から始めるのではなく、あなたが間違っているかもしれないものを見ることができます。 –

答えて

2

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

これはのexisting data vs new dataの項で覆われていますドキュメンテーション

+0

それは動作します。フランクに感謝します。 –

関連する問題