2016-06-25 13 views
0

Firebaseを使い始めました。Firebaseの単純なユーザ認証のルール

私はquickstart-jsテンプレートのいずれかを使用しています。

ユーザーが作成した投稿のみを読むことができるように、.readセキュリティルールを追加しようとしています。

auth.idに対してテストすればルールが合格するが、私はauth.uid(私はauth.uidが正しいことを理解している)に対してテストすれば失敗すると少し混乱している。シミュレータで

、この規則は失敗している:

{ 
    "rules": { 
    // ".read": "auth != null", 
    ".write": "auth != null", 
     "posts": { 
     "$post": { 
      ".read": "data.child('uid').val() === auth.uid", 
     } 
    } 
    } 
} 

ここでは、データベースの構造です:

{ 
    "posts" : { 
    "-KL6ecPO67H5B8SmPHJr" : { 
     "body" : "Just testing out the firebase system.", 
     "starCount" : 0, 
     "title" : "Camp Se has it's first blog post", 
     "uid" : "vaZrC0sSdYTiou587IuePVw9uRT2" 
    }, 
    "-KL6fUBOhsc4zosJbwjb" : { 
     "body" : "Another post ja ja ja\n", 
     "starCount" : 0, 
     "title" : "Another post", 
     "uid" : "vaZrC0sSdYTiou587IuePVw9uRT2" 
    } 
    }, 
    "user-posts" : { 
    "vaZrC0sSdYTiou587IuePVw9uRT2" : { 
     "-KL6ecPO67H5B8SmPHJr" : { 
     "body" : "Just testing out the firebase system.", 
     "starCount" : 0, 
     "title" : "Camp Se has it's first blog post", 
     "uid" : "vaZrC0sSdYTiou587IuePVw9uRT2" 
     }, 
     "-KL6fUBOhsc4zosJbwjb" : { 
     "body" : "Another post ja ja ja\n", 
     "starCount" : 0, 
     "title" : "Another post", 
     "uid" : "vaZrC0sSdYTiou587IuePVw9uRT2" 
     } 
    } 
    }, 
    "users" : { 
    "vaZrC0sSdYTiou587IuePVw9uRT2" : { 
     "email" : "[email protected]" 
    } 
    } 
} 

シミュレーション詳細結果:

Simulation results 
Type read 
Location /posts/KL6ecPO67H5B8SmPHJr/ 
Data null 
Auth { "provider": "google", "uid": "vaZrC0sSdYTiou587IuePVw9uRT2" } 
Admin false 
edit Read denied 
close 
Line 7 (/posts/KL6ecPO67H5B8SmPHJr) 
read: "data.child('uid').val() === auth.uid" 
+1

あなたの質問にJSONツリーの画像が含まれています。 Firebaseデータベースコンソールの[エクスポート]ボタンをクリックすると、実際のJSONをテキストとして置き換えてください。 JSONをテキストとして検索可能にすることで、実際のデータを使ってテストしたり、答えに使用したりすることができ、一般的には良いことです。 –

+0

エラーメッセージの詳細を開くと、何が表示されますか。テキストとしてもスクリーンショットよりも便利です。 –

答えて

2

私はシミュレータでのミスがありました「場所」フィールド。投稿IDをデータベースからコピーしたとき、前の-文字を見逃していました。

これを修正してルールを使用しました:-)

+1

ティムがうれしいです。同じミスを犯した人が(問題の原因を認識していないために)見つけることはありそうにないので、私はあなたの質問をタイポとして閉じようと投票します。 –

関連する問題