2017-10-12 7 views
0

多くのチュートリアルとStackOverflowの質問を読んだ後、私はまだそれを行う方法を理解できませんでした。 すべてのチュートリアルは、次のルールで始まる:新しいユーザーの追加とユーザー固有のパス権限を許可するFirebaseルール

"users":{ 
    "$uid":{ 
     ".read": "$uid === auth.uid", 
     ".write": "$uid === auth.uid" 
    } 
} 

しかし、どのようにするとき(!AUTH =ヌル)に新規ユーザログユーザーのノードで新しいユーザーを許可するように、リードを維持し、ユーザー固有のパスを書きます特権?

他の言葉: ログイン後に新しいユーザーをユーザーノードに挿入する方法はありますか?同時に、自分のノードの読み取りと書き込みのみを制限しますか?

もう1つの質問です。私はnewData.exists()を持つ別のノードに書き込みルールを持っています。シミュレータでは、ノードにnullデータを書き込もうとすると期待通りにそれを拒否しますが、同じノードの子にnullを書き込むことができます。ノードがその子にルールカスケードを書き込むべきではないか?

+0

2番目の質問に詳しいことがありますか? – Grimthorr

+0

中途半端なことはありません。私はそれと一緒に設定した別のルールのために働いていませんでした。 –

答えて

0

上記のルールは、$uidauth.uidと一致します。たとえば、ユーザーのUIDがcKzMyjImSBX6ybzeCCCjf0qbTym1である場合、このキーが現在存在するかどうかにかかわらず、/users/cKzMyjImSBX6ybzeCCCjf0qbTym1に書かれた&を読み取ることができます(書き込み時に存在しない場合は、作成した)。 Firebase documentation on rulesから

ユーザーが認証すると、あなたのFirebaseデータベース ルールルールにおける認証の変数は、ユーザーの情報が移入されます。この の情報には、ユニークな識別子(uid)と、FacebookのIDやメールアドレスなどの アカウントデータ、その他の 情報が含まれています。

+0

私が理解したように、ルールはキーではなくデータに関連しています。だから私は、ユーザーのキー(ID)の作成については心配する必要はありませんが、主にキーの下に格納されているすべての情報へのアクセス(読み取りと書き込み)があります。 Grimthorrが私の方向性を指摘してくれてありがとう。 –

+0

私は基本的に私のルールを上記の例として残しており、私が望むやり方でデータベースに書き込んで読むことができます。 –

関連する問題