0

シミュレータではPostsキーの読み書きが可能ですが、Usersキールールの結果は正しいです。投稿の下の各投稿には、ユーザーキーのユーザーを表すuid値があります。Firebase DBルールシミュレータでは、認証されていないユーザによる読み書きが可能

ルールが間違っているか、シミュレータが間違っていますか?穏やかで、私はFirebaseを初めて使う人です。 :)

Screenshot

2つは等しい:

Screen

編集さデータビューをします。https:// i.stack.imgur.com/GaYMj.png( "//" の周りにスペースを削除)

答えて

1

ルールを変更して、uidという子が存在することを確認してください。たとえば、次のように簡単なテストに基づいて

".read": "data.child('uid').exists() && data.child('uid').val() === auth.uid" 

は、私がどのような発生していることuid子が存在しない場合、data.child('uid').val()の評価が失敗し、それを偽の値を割り当てることによって処理されるということだと思います。同様に、ユーザーは認証されていないため、authはnullで、auth.uidもfalseと評価されます。だからあなたのルールは事実上".read": "false === false"になります。

ルールを使用して最初にシミュレーションを実行しましたが、uidという子供がデータベースに/posts/1の下にない場合、報告されたとおりに読み取りが許可されました。私がuid子を追加したとき、それは認められませんでした。

+0

投稿キーごとに常にuidが存在します。私の編集されたデータビューのスクリーンショットを見てください。私はあなたの例を試して、報告して戻ってきます。 – budd

+0

それはうまくいった。しかし、それは実際のデータに対して実行されていないか、それとも本当に自分のデータに対する真の修正ですか(編集されたデータ画面を参照)か? – budd

+0

シミュレータは、データベースの実際のデータを使用します。スクリーンショットはキー '-CZWF'のデータのみを表示します。私はあなたの事例で使ったキー "1"の下に何があるのか​​分かりません。 –

関連する問題