Como escolher entre o modo nativo e o modo Datastore

Ao criar um novo banco de dados do Firestore, é possível configurar a execução da instância do banco de dados no modo Datastore, o que torna o banco de dados compatível com versões anteriores do Datastore. Nesta página, você entenderá a diferença entre os dois modos de banco de dados do Firestore: modo nativo e modo Datastore.

Firestore no modo nativo

O Firestore é a próxima grande versão do Datastore, além de ser a reformulação do branding do produto. Unindo o melhor do Datastore e do Firebase Realtime Database, o Firestore consiste em um banco de dados de documentos NoSQL criado para oferecer escalonamento automático, alto desempenho e facilidade no desenvolvimento de aplicativos.

O Firestore apresenta novos recursos, como:

  • uma nova camada de armazenamento altamente consistente;
  • um modelo de dados de coleta e documento;
  • atualizações em tempo real
  • bibliotecas de cliente móveis e da Web.

O Firestore é compatível com versões anteriores do Datastore, mas o novo modelo de dados, as atualizações em tempo real e os recursos das bibliotecas de cliente da Web e de dispositivos móveis não são. Para acessar todos os novos recursos do Firestore, você precisa usar o Firestore no modo nativo.

Firestore no modo Datastore

O Firestore no modo Datastore mantém o comportamento do sistema do Datastore, mas tem acesso à camada de armazenamento do Firestore e remove as seguintes limitações do Datastore:

  • Com consistência posterior, todas as consultas do Datastore se tornam fortemente consistentes.
  • As consultas em transações não precisam mais ser consultas de ancestral.
  • As transações não estão mais limitadas a 25 grupos de entidades.
  • As gravações em um grupo de entidades não estão mais limitadas a uma por segundo.

O modo Datastore desativa os recursos do Firestore que não são compatíveis com o Datastore:

  • O projeto aceitará solicitações da API Datastore e negará as solicitações da API Firestore.
  • O projeto usará índices do Datastore em vez de índices do Firestore.
  • É possível usar as bibliotecas de cliente do Datastore com este projeto, mas não as do Firestore.
  • Os recursos em tempo real do Firestore não estarão disponíveis.
  • No Console do Cloud, o banco de dados usará o visualizador do Datastore.

Atualização automática para o modo Datastore

Os bancos de dados atuais do Datastore serão automaticamente atualizados para o Firestore no modo Datastore. Novos projetos que exigem um banco de dados do Datastore precisam usar o Firestore no modo Datastore.

Preços e locais

Os bancos de dados do modo nativo e do modo Datastore usam a mesma estrutura de preços e estão disponíveis nos mesmos locais. Os preços e os locais estão descritos em detalhes nestas páginas:

Firestore no modo nativo

Firestore no modo Datastore

Como escolher um modo de banco de dados

Ao criar um novo banco de dados do Firestore, selecione um modo de banco de dados. Não é possível usar o modo nativo e o modo Datastore no mesmo projeto. Recomendamos o seguinte ao escolher um modo de banco de dados:

  • Use o Firestore no modo Datastore para novos projetos de servidor.

    O Firestore no modo Datastore permite o uso de arquiteturas de servidores do Datastore estabelecidas enquanto remove as limitações básicas do Datastore. O modo Datastore pode ser escalonado automaticamente para milhões de gravações por segundo.

  • Use o Firestore no modo nativo para novos aplicativos da Web e de dispositivos móveis.

    O Firestore oferece bibliotecas de clientes para dispositivos móveis e Web com recursos off-line e em tempo real. O modo nativo pode ser escalonado automaticamente para milhões de clientes simultâneos.

Comparação do recurso

A tabela a seguir compara o comportamento do sistema nos dois modos de banco de dados:

Firestore
Modo nativo
Firestore
Modo Datastore
Modelo de dados Banco de dados de documentos organizado em documentos e coleções. Entidades organizadas em tipos e grupos de entidades.
Camada de Armazenamento Nova camada de armazenamento sempre de consistência forte Nova camada de armazenamento sempre de consistência forte
Consultas e transações
  • Consultas de consistência forte em todo o banco de dados
  • Até 500 documentos por transação em qualquer número de coleções.
  • Limitação: não faz consultas de projeção.
  • Remove as limitações anteriores de consistência do Datastore.
  • Consultas de consistência forte em todo o banco de dados
  • As transações têm acesso a qualquer número de grupos de entidades
Suporte para API Datastore v1 Não, as solicitações são negadas Sim
Suporte para API Firestore v1 Sim Não, as solicitações são negadas
Atualizações em tempo real

Compatível com a capacidade de detectar um documento ou um conjunto de documentos para atualizações em tempo real.

Ao ouvir um documento ou conjunto de documentos, seus clientes são notificados sobre quaisquer alterações de dados e recebem o conjunto de dados mais recente.

Incompatível
Persistência de dados off-line As bibliotecas móveis e de cliente da Web são compatíveis com a permanência de dados offline. Incompatível
Bibliotecas cliente Bibliotecas de cliente do Firestore:
  • Java
  • Python
  • PHP
  • Go
  • Ruby
  • C#
  • Node.js
  • Android
  • iOS
  • Web
Bibliotecas de cliente do Datastore:
  • Java
  • Python
  • PHP
  • Go
  • Ruby
  • C#
  • Node.js
Segurança
  • O Cloud Identity and Access Management (IAM) gerencia o acesso ao banco de dados
  • As regras de segurança do Firestore são compatíveis com autenticação e autorização sem servidor para as bibliotecas de cliente da Web e de dispositivos móveis.
O Cloud Identity and Access Management (IAM) gerencia o acesso ao banco de dados
Desempenho Escalona automaticamente para milhões de clientes simultâneos. Máximo de 10.000 gravações por segundo. Escalona automaticamente para milhões de gravações por segundo.
SLA SLA do Firestore. SLA do Firestore.
Locais
  • EUA (multirregional)
  • Europa (multirregional)
  • Montreal
  • Los Angeles
  • Carolina do Sul
  • Virgínia do Norte
  • São Paulo
  • Londres
  • Frankfurt
  • Tóquio
  • Mumbai
  • Sydney
  • EUA (multirregional)
  • Europa (multirregional)
  • Montreal
  • Los Angeles
  • Carolina do Sul
  • Virgínia do Norte
  • São Paulo
  • Londres
  • Frankfurt
  • Tóquio
  • Mumbai
  • Sydney
Preço Mesma estrutura de preços
Console Visualizador do Firestore no Console do Firebase e no Console do Cloud Visualizador do Datastore no Console do Cloud
Namespaces Incompatível Namespaces compatíveis
Integração com a biblioteca de cliente do App Engine

Incompatível com os ambientes de execução padrão do App Engine em Python 2.7 e PHP 5.5

Compatível com os tempos de execução do Python 3.7, PHP 7.2, Java 8, Go e Node.js

Compatível com o ambiente flexível do App Engine e com todos os ambientes de execução

Compatível em qualquer tempo de execução