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.
  • alovelace
    •     Nome:
            Primeiro: "Ada"
            Último: "Lovelace"
          Data de nascimento: 1815
          Salas:
            0: "Chat sobre software"
            1: "Pessoas famosas"
            2: "Organização SWE"

Subcoleções

É possível 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 recursos completos de consulta em subcoleções e pode emitir consultas de grupo de coleções em 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.
  • ciência
    • software
        Nome: "chat sobre software"
      • usuários
        • alovelace
              Primeiro: "Ada"
              Último: "Lovelace"
        • sride
              Primeiro: "Sally"
              Último: "Ride"


    • 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 são boas para relações de muitos para muitos e oferecem consultas avançadas 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.
  • users
    • alovelace
          Primeiro: "Ada"
          Último: "Lovelace"
          Data de nascimento: 1815
    • sride
          Primeiro: "Sally"
          Último: "Ride"
          Data de nascimento: 1951
  • salas
    • software
      • mensagens
        • mensagem1
              De: "alovelace"
              Conteúdo: "..."
        • mensagem2
              De: "sride"
              Conteúdo: "..."