Ich versuche, eine einfache Chat-App mit der Firebase-Plattform zu entwickeln. Um eine Liste der Konversationen anzuzeigen, verwende ich FirebaseRecyclerAdapter. Die Sache ist, dass ich nicht herausfinden kann, wie man die Regeln richtig einstellt, so dass Benutzer nur auf Konversationen zugreifen können, denen sie angehören.Struktur der Firebase-Regeln mit FirebaseRecyclerAdapter
So sieht meine Firebase DB-Struktur aus.
{
"conversations": {
"cid1": {
"title": "Conversation1"
},
"cid2": {...
},
"cid3": {...
}
},
"members": {
"cid1": {
"uid1": true,
"uid2": true
},
"cid2": {...
},
"cid3": {...
}
},
"users": {
"uid1": {
"name": "User1"
},
"uid2": {...
},
}
}
Und das sind die Regeln, die ich versuche anzuwenden.
{
"rules": {
"conversations": {
"$conversation_id": {
".read": "root.child('members').child($conversation_id).child(auth.uid).exists()",
}
},
}
}
Durch diese Regeln anwenden und mit FirebaseRecyclerAdapter ich diesen Fehler.
Ich nehme an, es ist, weil ich Benutzern erlaube, Konversationselement zu lesen, aber nicht die ganze Liste der Konversationen. Hat jemand eine Idee, wie man dieses Problem lösen kann?
was ist 'mid1',' mid2'? – adolfosrs
Wir müssen den Code sehen, mit dem Sie darauf zugreifen. – adolfosrs
@adolfosrs: Es sollte die Benutzer-ID sein. Bearbeitete die Struktur, also hoffe ich, dass es jetzt mehr Sinn macht. –