Ir para o console

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 e subcoleções nos documentos. Avalie as vantagens de cada opção de acordo com seu caso de uso.

Dados aninhados em documentos

Você pode aninhar objetos complexos como matrizes (mapas) em documentos.

  • Vantagens: se você tem listas de dados simples e fixas que deseja manter nos documentos, é fácil configurar e simplificar a estrutura de dados.
  • Limitações: você não pode executar consultas em listas aninhadas. Além disso, esse recurso não é tão escalá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: você não pode excluir facilmente as subcoleções nem executar consultas compostas nelas.
  • 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"
              conteúdo: "..."