"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo puede Firestore optimizar los sistemas de alimentación y seguimiento para lograr escalabilidad en las redes sociales?

¿Cómo puede Firestore optimizar los sistemas de alimentación y seguimiento para lograr escalabilidad en las redes sociales?

Publicado el 2024-11-23
Navegar:590

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

Optimización de los sistemas de alimentación y seguimiento en Firestore

Problemas de escalabilidad con la base de datos en tiempo real

En tu aplicación de red social anterior que usaba Firebase Realtime Database, enfrentaste problemas de escalabilidad debido a lo siguiente:

  • Se agregaron publicaciones a las líneas de tiempo de todos los seguidores, incluso para un usuario con numerosos seguidores.
  • Los nuevos seguidores recibieron todo el contenido publicado anteriormente de los usuarios que siguieron.

Estructura optimizada de Firestore

Para resolver estos problemas en Firestore, considere la siguiente estructura de base de datos:

  • Tres colecciones de nivel superior para usuarios, siguientes y publicaciones.
  • Los usuarios tienen documentos con campos como nombre y correo electrónico.
  • La siguiente colección contiene documentos para cada usuario, con subcolecciones para los UID de los usuarios que siguen.
  • La colección de publicaciones contiene documentos para cada usuario, con subcolecciones para los ID de publicación de sus publicaciones.

Mejorado Escalabilidad

Esta estructura permite un manejo eficiente de seguidores y publicaciones:

  • Almacenar seguidores en subcolecciones elimina la necesidad de copiar datos.
  • Separar publicaciones en subcolecciones garantiza que la recuperación de las últimas publicaciones de los usuarios seguidos siga siendo eficaz, incluso con una gran cantidad de seguidores.

Consulta de publicaciones de usuarios seguidos

Para mostrar las últimas publicaciones en el feed de un usuario, puede utilizar la siguiente consulta:

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

Esta consulta recupera las últimas tres publicaciones para el usuario especificado (uid) y se puede utilizar de forma paginada para una carga continua. .

Optimización para grandes volúmenes de publicaciones

Para optimizar el manejo de grandes volúmenes de publicaciones, considere almacenar las publicaciones que deben mostrarse en un feed del usuario en un documento o subcolección separada para ese usuario. Esto garantiza una recuperación eficiente y evita el problema de que los nuevos seguidores reciban todo el contenido publicado anteriormente.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3