2016-09-25 13 views
0

私はFirebaseを使用しています。Firebaseデータベース内のノードの保護

ルールの
--Users 
----RandomUID1 
----RandomUID2 
----RandomUID3 

、これは私が持っているものです::

--"users" : { 

----".read": "auth != null && !root.child('blockedUsers').hasChild(auth.uid)", 

----".write": "auth != null && !root.child('blockedUsers').hasChild(auth.uid)" 

--} 

私が望む何同じ滞在するusersノードから読み取るためですが、ここでは私のいずれかのノードがどのように見えるかがあります私はusersノードの子供にのみ書くことができるようにしたいと思います。その理由は、私が間違いなくコード全体をusersノードを削除した夜間に書いた場合、致命的なことになります。ノード自体の書き込みが許可されていないが、子ノードへの書き込みが許可されるようにルールを作ることは可能ですか?

人的ミスのために起こる可能性のあるこのような事故から身を守る方法はありますか?

答えて

2

あなたは変数を使用することができ、Firebase variable rules

は、ユーザーのノード.AT私は、データの変更を許可しない書き込みルールを追加しませんでした。

"users":{ 
     ".read": "auth != null && !root.child('blockedUsers').hasChild(auth.uid)", 
     "$uid": { //where $uid is child 
     ".read": "auth!==null && auth.uid == $uid", 
     ".write": ""auth!==null && auth.uid === $uid" 
     } 
    } 
+0

ありがとうございます!私は "書き込み"を置く場合:どのようなユーザーのノードで "偽"ですか? –

+0

デフォルトは 'false'なので、ここでは違いはありません。しかし、分かりやすくするためにそれを追加し、より低いレベルでよりリラックスしたルールを指定することができます。覚えておくべき重要なことの1つは、逆が不可能であることです。パーミッションは継承されています:あるレベルで 'true'を指定すると、そのパーミッションを低いレベルで取り除くことはできません。 –

+0

丁寧な回答btw @Fowotade –

関連する問題