„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann Firestore Feed- und Follow-Systeme für die Skalierbarkeit in sozialen Netzwerken optimieren?

Wie kann Firestore Feed- und Follow-Systeme für die Skalierbarkeit in sozialen Netzwerken optimieren?

Veröffentlicht am 23.11.2024
Durchsuche:975

How can Firestore optimize feed and follow systems for scalability in social networks?

Optimieren von Feed- und Follow-Systemen in Firestore

Skalierbarkeitsprobleme mit Echtzeitdatenbank

In Ihrem Bei früheren Social-Networking-Apps, die die Firebase-Echtzeitdatenbank verwenden, traten Skalierbarkeitsprobleme auf Folgendes:

  • Beiträge wurden zu den Timelines aller Follower hinzugefügt, auch für einen Benutzer mit zahlreichen Followern.
  • Neue Follower erhielten alle zuvor geposteten Inhalte der Benutzer, denen sie folgten.

Optimierte Firestore-Struktur

Um diese Probleme in Firestore zu beheben, berücksichtigen Sie die folgende Datenbank Struktur:

  • Drei Sammlungen der obersten Ebene für Benutzer, Follower und Beiträge.
  • Benutzer haben Dokumente mit Feldern wie Name und E-Mail.
  • Die folgende Sammlung enthält Dokumente für jeden Benutzer, mit Untersammlungen für die UIDs der Benutzer, denen sie folgen.
  • Die Posts-Sammlung enthält Dokumente für jeden Benutzer, mit Untersammlungen für die Beitrags-IDs von ihre Beiträge.

Verbesserte Skalierbarkeit

Diese Struktur ermöglicht eine effiziente Handhabung von Followern und Beiträgen:

  • Speichern von Followern in Sub -Sammlungen machen das Kopieren von Daten überflüssig.
  • Durch die Aufteilung von Beiträgen in Untersammlungen wird sichergestellt, dass die neuesten Beiträge der verfolgten Benutzer abgerufen werden bleibt auch bei einer großen Anzahl von Followern performant.

Abfragen nach verfolgten Benutzerbeiträgen

Um die neuesten Beiträge im Feed eines Benutzers anzuzeigen, können Sie kann die folgende Abfrage verwenden:

Query query = rootRef.collection("posts/"   uid   "/userPosts")
    .orderBy("date", Query.Direction.DESCENDING).limit(3);

Diese Abfrage ruft die letzten drei Beiträge für den angegebenen Benutzer (UID) ab und kann in paginierter Form für kontinuierliches Laden verwendet werden .

Optimierung für großes Beitragsvolumen

Um die Handhabung großer Beitragsmengen zu optimieren, sollten Sie erwägen, die Beiträge zu speichern, die angezeigt werden sollen im Feed eines Benutzers in einem separaten Dokument oder einer Untersammlung für diesen Benutzer. Dies gewährleistet einen effizienten Abruf und vermeidet das Problem, dass neue Follower alle zuvor geposteten Inhalte erhalten.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3