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"
あなたの質問にJSONツリーの画像が含まれています。 Firebaseデータベースコンソールの[エクスポート]ボタンをクリックすると、実際のJSONをテキストとして置き換えてください。 JSONをテキストとして検索可能にすることで、実際のデータを使ってテストしたり、答えに使用したりすることができ、一般的には良いことです。 –
エラーメッセージの詳細を開くと、何が表示されますか。テキストとしてもスクリーンショットよりも便利です。 –