Ich verwende Firebase für eine App und die integrierten Echtzeitfunktionen scheinen gut für Instant Messaging geeignet. Es fällt mir nur schwer in den Kopf zu gehen, wie die Datenbank aufgebaut werden soll. Idealerweise ist es so etwas wie diese:Firebase/NoSQL-Schema für ein Instant Messaging-System
messages: {
<messageId>: {
from: <userId>,
to: <userId>,
text: <String>,
dateSent: <Date>
dateRead: <Date>
}
}
Und das ist alles in Ordnung zum Senden von Nachrichten, aber das Lesen Nachrichten-Threads wird schwierig. Ich muss die (potenziell riesige) Liste von Nachrichten für Nachrichten abfragen, die mit dem Absender und Empfänger des aktuellen Threads übereinstimmen, und diese dann unter dateSent
bestellen. Wenn das mit der neuen Abfrage-API von Firebase möglich ist, muss ich noch genau herausfinden, wie es geht.
Also das bedeutet, dass ich im Grunde die Firebase Chat Beispiel als Basis verwendet werden soll, sondern beschränken Zimmer eine Diskussion zwischen zwei Nutzern? Wie verhindere ich, dass doppelte "Räume" zwischen denselben zwei Benutzern geöffnet werden? – delwin
Siehe http://stackoverflow.com/questions/33540479/best-way-to-manage-chat-channel-in-firebase –