So fragen Sie Chats basierend auf der Anwesenheit des Teilnehmers ab
Problemstellung:
Gegeben eine Firebase Datenbankstruktur, die Chat-Gespräche mit mehreren Teilnehmern darstellt, wie können wir effizient nach Chats abfragen, die einen bestimmten Teilnehmer enthalten? Teilnehmer?
Aktuelle Abfrage (funktioniert nicht):
return this.af.database.list('chats', { query: { orderByChild: 'participants', equalTo: username, // How to check if participants contain username } });
Probleme mit der aktuellen Abfrage:
Empfohlene Lösung: Index umkehren
Um die Abfrage zu optimieren, Es wird empfohlen, die Indexstruktur umzukehren, indem die Daten abgeflacht und die Chatroom-Beziehungen auf die Benutzerebene hochgezogen werden. Dies beinhaltet:
Überarbeitete Daten Struktur:
userChatrooms: { john: { chatRoom1: true, chatRoom2: true }, puf: { chatRoom1: true, chatRoom3: true } }
Aktualisierte Abfrage:
ref.child('userChatrooms').child(username)
Vorteile des invertierten Index:
Das obige ist der detaillierte Inhalt vonWie kann man Firebase-Chats basierend auf der Teilnehmerpräsenz effizient abfragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!