2016-07-30 10 views
0

私はFirebaseを試していて、security rulesについて興味があります。ファイヤーベース - セキュリティルールREST

{ 
"myNewData" : "Some String" 
} 

書き込まれますのみオブジェクトがキー名myNewDataを持つようにどのようにルールを記述することができます。

はあなたが単にとして表さfirebaseデータセットがあるとしましょうか?私は、シミュレータではなく、中で働く

{ 
    "rules": { 
     ".read":true, 
     "$someData":{ 
     ".write":true,   
     ".validate": "newData.hasChild('myNewData')" 
     } 

    } 
    } 

を思い付いたシミュレータで

-myFireBaseapp 
    -someData 
     -RandomFirebaseKey 
      -myNewData 
     -RandomFirebaseKey 
      -myNewData 

次のように私はPOST方法やデータを使用してい

はFirebaseで構成されています郵便配達員。すべての情報について

POST

http://myfirebase.app.bucket/someData.json

{ 
    "myNewData" : "Some String" 
    } 

感謝。あなたのデータは常に任意の値を持つキー/someData/<anyKey>/myNewDataを持つようにしたい場合は

+0

REST呼び出しを失敗させる最小限のコードを表示します。 –

+0

@FrankvanPuffelen RESTコールは郵便配達員になります。上記の投稿は – gregdevs

+0

に追加されました。そのリクエストはデータを送信していないため、セキュリティルールを満たしません。あなたがしようとしていることの[最小、完全な例](http://stackoverflow.com/help/mcve)がなければ、それは助けが難しいです。この場合、例えば、あなたのデータ構造の2つのサンプルは、 'myNewData'が値のキーであるかどうかによって異なります。助けてほしいと思っている答えを書きます。 –

答えて

1

、あなたはあなたの目を細めた場合

{ 
    "rules": { 
     ".read":true, 
     "someData":{ 
      "$anyKey": { 
       ".write":true,   
       ".validate": "newData.hasChild('myNewData')" 
      } 
     } 
    } 
} 

で、あなたはまだこれらのルール/someData/$anyKey/myNewDataにパスを見ることができることを検証することができます。

あなたもmyNewDataの値が文字列であることを検証したい場合は、あなたがにルールを拡張したい:

{ 
    "rules": { 
     ".read":true, 
     "someData":{ 
      "$anyKey": { 
       ".write":true,   
       ".validate": "newData.hasChild('myNewData')", 
       "myNewData": { 
        ".validate": "data.isString()" 
       }, 
       "$other": { 
        ".validate": false 
       } 
      } 
     } 
    } 
} 

私はまた、任意に書き込むことを保証する最後のサンプルに"$other: { ".validate": false }を追加しました指定されていないキーはリジェクトです。だから/someData/$anyKeyの文字列であるmyNewDataを含むことができます。

これはすべてFirebaseのUsing $ Variables to Capture Path Segmentsのドキュメントに記載されています。私はこれを強くお勧めします。

+0

素晴らしいです。この例ではありがたいことです。数時間後にこれを撃ち、あなたに報告しましょう。 – gregdevs

+0

私は彼らの文書を簡単に紹介しましたが、変数の能力を捕まえていませんでした。ありがとう – gregdevs

+0

もう一度ありがとう。これは正しい軌道に乗った。 – gregdevs