Wir haben gerade begonnen, Firebase für unsere neue App zu erkunden. Die App benötigt grundsätzlich einen Chat zwischen Nutzern und Gruppenchat.firebase google oder query support oder eine alternative Lösung
Für die Chat-Anwendung schaffen wir: MessageThread (id, Benutzer: userA, Benutzer: userB, Benutzergruppe: Gruppe, Array: deletedBy, ...)
Das Hauptproblem ist nicht der Fall ist Feuerbasis unterstütze ODER-Anfragen und IN-Anfragen, die ich in meinem Anwendungsfall benötige. Zum Beispiel:
Dummy Abfrage Gespräche Benutzerliste zuzugreifen: holen MessageThread (n), wo (currentUser.id == userA.id) OR (currentUser.id == userB.id) OR (currentUser.id IN group.members)
Ich vermisse etwas, um Firebase zu verstehen? Was ist der andere alternative Weg, unsere Datenbank zu entwerfen, um dieses Problem zu lösen?
Vielen Dank, noch eine Frage: Gibt es irgendwelche Unterstützung von Referenzen in Firebase? Beispiel: Ich möchte das Objekt des Benutzers in der Konversation speichern, sodass ich den Namen und das Foto des Benutzers auf dem Konversationslistenbildschirm anzeigen kann. – iMemon
Es gibt keine verwalteten Fremdschlüsselreferenzen. Aber es ist sehr üblich, Referenzen zu haben. Weitere Informationen finden Sie in der Dokumentation zu [Erstellen von Daten, die skaliert werden] (https://firebase.google.com/docs/database/android/structure-data#fanout). –
In meinem Senerio, habe ich Gruppen/Benutzer-Chat und Chat-Name und Bild wird aus dieser Gruppe/Benutzer abgerufen Und ich kann es nicht denormalize, weil der Benutzer die Möglichkeit hat, es jederzeit zu ändern. Also von Ihrem erwähnten Ansatz, kann ich eine Tabelle/conversationMetadata haben, wo ich eine Referenz von Benutzer/Gruppe werde. Jetzt ist das Problem, eine Konversationsliste zu holen (wie in deinem oben erwähnten Code erklärt): Zuerst hole ich userConversations, dann hole ich conversationMetadata für jede Konversation und dann muss ich userData oder groupData holen (um Name/Bild zu erhalten). Glaubst du nicht, dass es zu langsam wird? Bitte helfen Sie. – iMemon