2016-12-03 17 views
1

私はFirebaseデータベースの検証ルールの側面のカップルに不明瞭だ、と持っているが、すでにread the documentation a couple of times私の具体的なケース/質問は以下の通りです使い方は

それは数ある場合は、このルールは、現在「aNumber」の書き込みを許可しますが、私は希望
{ 
    "rules": { 
    ".validate": "newData.child('aNumber').isNumber()", 
    ".read": true, 
    ".write": true  
    } 
} 

{ 
    "aNumber" : 0.794180524700695, 
    "clicks" : 11 
} 

私の現在の検証ルールは、このですフィールド "クリック数"が数字であることを検証することもできます。

私は、オペレータ(& &)を使用してみました:

{ 
    "rules": { 
    ".validate": "newData.child('aNumber').isNumber() && 
       newData.child('clicks').isNumber()", 
    ".read": true, 
    ".write": true  
    } 
} 

をしかし、私は唯一のフィールドの更新時には失敗します。私はこれを検証する方法を

{ 
"aNumber": 2 
} 

を?一般的に複数の独立したフィールドを検証する良い方法は何ですか?

おかげ

答えて

3

だから、いくつかの実験の後、私は自分の質問への答えを見つけた:

私の新しいルールは次のようになります。

{ 
"rules": { 
    ".read": true, 
    ".write": true, 
    "aNumber": { 
     ".validate": "newData.isNumber()" 
    }, 
    "clicks": { 
     ".validate": "newData.isNumber()" 
    }     
} 
} 

ので、代わりのグローバル特定の子ノードのための検証します検証はルールの特定のノードレベルで行われますが、これは明らかかもしれませんが、実現するには少し時間がかかります。

+0

データベース内の特定のディレクトリに格納したい場合は、別の角括弧を付けるだけでいいですか? – CraftedGaming