Firebaseプラットフォームを使用して簡単なChatアプリケーションを開発しようとしています。私が使用している会話のリストを表示するにはFirebaseRecyclerAdapterです。事は、ルールを正しく設定して、ユーザーがメンバーになっている会話にしかアクセスできないようにする方法がわからないということです。FirebaseRecyclerAdapterを使用したFirebaseルールの構造
これは私のFirebase DBの構造です。
{
"conversations": {
"cid1": {
"title": "Conversation1"
},
"cid2": {...
},
"cid3": {...
}
},
"members": {
"cid1": {
"uid1": true,
"uid2": true
},
"cid2": {...
},
"cid3": {...
}
},
"users": {
"uid1": {
"name": "User1"
},
"uid2": {...
},
}
}
これは私が適用しようとしているルールです。このルールを適用すると、私はこのエラーを取得していFirebaseRecyclerAdapterを使用することにより
{
"rules": {
"conversations": {
"$conversation_id": {
".read": "root.child('members').child($conversation_id).child(auth.uid).exists()",
}
},
}
}
。
Listen at /conversations failed: DatabaseError: Permission denied
私は、ユーザーが会話要素ではなく、会話の全体リストに読み取ることが可能だからだと仮定します。誰でもこの問題を解決する方法を知っていますか?
「mid1」、「mid2」とは何ですか? – adolfosrs
アクセスするために使用しているコードを確認する必要があります。 – adolfosrs
@adolfosrs:それはユーザーIDであるはずです。構造を編集しましたので、今はより意味をなさないことを願っています。 –