"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment Firestore peut-il optimiser les systèmes de flux et de suivi pour assurer l'évolutivité des réseaux sociaux ?

Comment Firestore peut-il optimiser les systèmes de flux et de suivi pour assurer l'évolutivité des réseaux sociaux ?

Publié le 2024-11-23
Parcourir:138

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

Optimisation des systèmes de flux et de suivi dans Firestore

Problèmes d'évolutivité avec la base de données en temps réel

Dans votre précédente application de réseau social utilisant Firebase Realtime Database, vous avez rencontré des problèmes d'évolutivité dus aux éléments suivants :

  • Des publications ont été ajoutées à la chronologie de tous les abonnés, même pour un utilisateur comptant de nombreux abonnés.
  • Les nouveaux abonnés ont reçu tout le contenu précédemment publié par les utilisateurs qu'ils suivaient.

Structure Firestore optimisée

Pour résoudre ces problèmes dans Firestore, considérez la structure de base de données suivante :

  • Trois collections de niveau supérieur pour les utilisateurs, suivantes et posts.
  • Les utilisateurs disposent de documents avec des champs tels que le nom et l'adresse e-mail.
  • La collection suivante contient des documents pour chaque utilisateur, avec des sous-collections pour les UID des utilisateurs qu'ils suivent.
  • La collection de publications contient des documents pour chaque utilisateur, avec des sous-collections pour les identifiants de publication de leurs publications.

Amélioré Évolutivité

Cette structure permet une gestion efficace des abonnés et des publications :

  • Le stockage des abonnés dans des sous-collections élimine le besoin de copier les données.
  • Séparation les publications dans les sous-collections garantissent que la récupération des dernières publications des utilisateurs suivis reste performante, même avec un grand nombre d'abonnés.

Requête des abonnés suivis. Publications utilisateur

Pour afficher les dernières publications dans le flux d'un utilisateur, vous pouvez utiliser la requête suivante :

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

Cette requête récupère les trois dernières publications pour l'utilisateur spécifié (uid) et peut être utilisée de manière paginée pour un chargement continu .

Optimisation pour les gros volumes de publications

Pour optimiser la gestion des gros volumes de publications, envisagez de stocker les publications qui doivent être affichées dans le compte d'un utilisateur. alimenter un document ou une sous-collection distinct pour cet utilisateur. Cela garantit une récupération efficace et évite le problème des nouveaux abonnés recevant tout le contenu précédemment publié.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3