"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como o Firestore pode otimizar feeds e acompanhar sistemas para escalabilidade em redes sociais?

Como o Firestore pode otimizar feeds e acompanhar sistemas para escalabilidade em redes sociais?

Publicado em 23/11/2024
Navegar:230

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

Otimizando sistemas de feed e acompanhamento no Firestore

Problemas de escalabilidade com o Realtime Database

Em seu aplicativo de rede social anterior usando o Firebase Realtime Database, você enfrentou problemas de escalabilidade devido ao seguinte:

  • Postagens foram adicionadas aos cronogramas de todos os seguidores, mesmo para um usuário com vários seguidores.
  • Novos seguidores receberam todo o conteúdo postado anteriormente dos usuários que seguiram.

Estrutura otimizada do Firestore

Para resolver esses problemas no Firestore, considere a seguinte estrutura de banco de dados:

  • Três coleções de nível superior para usuários, seguintes e postagens.
  • Os usuários têm documentos com campos como nome e e-mail.
  • A coleção a seguir contém documentos para cada usuário, com subcoleções para os UIDs dos usuários que eles seguem.
  • A coleção de postagens contém documentos para cada usuário, com subcoleções para os IDs de postagem de suas postagens.

Melhorado Escalabilidade

Essa estrutura permite o manuseio eficiente de seguidores e postagens:

  • Armazenar seguidores em subcoleções elimina a necessidade de copiar dados.
  • Separar postagens em subcoleções garante que a recuperação das postagens mais recentes de usuários seguidos permaneça com bom desempenho, mesmo com um grande número de seguidores.

Consultar por Postagens de usuários seguidas

Para exibir as postagens mais recentes no feed de um usuário, você pode usar a seguinte consulta:

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

Esta consulta recupera as três últimas postagens do usuário especificado (uid) e pode ser utilizada de maneira paginada para carregamento contínuo .

Otimização para grandes volumes de postagens

Para otimizar o tratamento de grandes volumes de postagens, considere armazenar as postagens que devem ser exibidas no feed de um usuário em um documento ou subcoleção separada para esse usuário. Isso garante uma recuperação eficiente e evita o problema de novos seguidores receberem todo o conteúdo postado anteriormente.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3