Escolher uma estrutura de dados

Lembre-se de que quando você estrutura os dados no Cloud Firestore, há algumas opções diferentes:

  • Documentos
  • Várias coleções
  • Subcoleções em documentos

Avalie as vantagens de cada opção de acordo com seu caso de uso. Neste guia, mostramos alguns exemplos de estruturas de dados hierárquicos.

Dados aninhados em documentos

Aninhe objetos complexos como matrizes ou mapas em documentos.

  • Vantagens: se você tem listas de dados simples e fixas que pretende manter nos documentos, é fácil configurar e simplificar a estrutura de dados.
  • Limitações: esse recurso não é tão escalonável quanto as outras opções, principalmente se os dados se expandem ao longo do tempo. Com listas maiores ou em constante crescimento, o documento também cresce, o que pode resultar em tempos de recuperação de documentos mais lentos.
  • Que caso de uso é possível? Em um app de bate-papo, por exemplo, você pode armazenar as três salas de bate-papo de um usuário visitadas mais recentemente como uma lista aninhada no perfil dele.
  • class alovelace
    •     nome:
            primeiro: "Ada"
            último: "Lovelace"
          nascimento: 1815
          salas:
            0 : "Software de bate-papo"
            1: "Figuras famosas"
            2: "SWEs famosos"

Subcoleções

Você pode criar coleções em documentos quando há dados que podem se expandir ao longo do tempo.

  • Vantagens: conforme as listas crescem, o tamanho do documento pai não muda. Você também tem acesso a todos os recursos de consulta nas subcoleções.
  • Limitações: não é fácil excluir subcoleções.
  • Que caso de uso é possível? No mesmo app de bate-papo, por exemplo, você pode criar coleções de usuários ou mensagens em documentos da sala de bate-papo.
  • collections_bookmark science
    • class software
        nome: "software de bate-papo"
      • collections_bookmark usuários
        • class alovelace
              primeiro: "Ada"
              último: "Lovelace"
        • class sride
              primeiro: "Sally"
              último: "Ride"


    • class astrofísica

Coleções no nível raiz

Crie coleções no nível raiz do banco de dados para organizar conjuntos de dados diferentes.

  • Vantagens: as coleções no nível raiz oferecem mais flexibilidade e escalabilidade, além de consulta avançada em cada coleção.
  • Limitações: o acesso a dados, que é naturalmente hierárquico, pode tornar-se cada vez mais complexo à medida que o banco de dados aumenta.
  • Que caso de uso é possível? No mesmo app de bate-papo, por exemplo, você pode criar uma coleção de usuários e outra de salas e mensagens.
  • collections_bookmark usuários
    • class alovelace
          primeiro: "Ada"
          último: "Lovelace"
          nascimento: 1815
    • class sride
          primeiro: "Sally"
          último: "Ride"
          nascimento: 1951
  • collections_bookmark salas
    • class software
      • collections_bookmark messages
        • class message1
              de: "alovelace"
              conteúdo: "..."
        • class message2
              de: "sride"
              content : "..."