Escolha um banco de dados: Cloud Firestore ou Realtime Database

O Firebase oferece dois bancos de dados de documentos baseados na nuvem e acessíveis ao cliente. Recomendamos que novos clientes comecem com o Cloud Firestore:

  • Cloud Firestore é o banco de dados de documentos compatível com JSON de nível empresarial recomendado , com a confiança de mais de 250.000 desenvolvedores. É adequado para aplicações com modelos de dados ricos que exigem consultabilidade, escalabilidade e alta disponibilidade. Ele também oferece sincronização de cliente de baixa latência e acesso offline a dados.

  • Realtime Database é o banco de dados JSON clássico do Firebase. É adequado para aplicações com modelos de dados simples que exigem pesquisas simples e sincronização de baixa latência com escalabilidade limitada.

Quais são algumas outras coisas importantes a considerar?

Depois de pensar nas principais considerações anteriores, você poderá estar pronto para escolher um banco de dados . Se você ainda está avaliando vantagens e desvantagens, esta seção aborda outras diferenças entre o Cloud Firestore e o Realtime Database.

Modelo de dados

Tanto o Realtime Database quanto o Cloud Firestore são bancos de dados NoSQL.

Cloud Firestore preferencial Banco de dados em tempo real
Armazena dados como coleções de documentos.
  • Dados simples são fáceis de armazenar em documentos, que são muito semelhantes ao JSON.
  • Dados complexos e hierárquicos são mais fáceis de organizar em escala, usando subcoleções dentro de documentos.
  • Requer menos desnormalização e nivelamento de dados.

Saiba mais sobre o modelo de dados do Cloud Firestore .

Armazena dados como uma grande árvore JSON.
  • Dados simples são muito fáceis de armazenar.
  • Dados complexos e hierárquicos são mais difíceis de organizar em escala.

Saiba mais sobre o modelo de dados do Realtime Database .

Suporte em tempo real e offline

Ambos têm SDKs em tempo real voltados para dispositivos móveis e oferecem suporte ao armazenamento de dados local para aplicativos prontos para uso off-line.

Cloud Firestore preferencial Banco de dados em tempo real
Suporte offline para clientes Apple, Android e web. Suporte offline para clientes Apple e Android.

Presença

Pode ser útil saber quando um cliente está online ou offline. O Firebase Realtime Database pode registrar o status da conexão do cliente e fornecer atualizações sempre que o estado da conexão do cliente muda.

Cloud Firestore preferencial Banco de dados em tempo real
Não há suporte nativo. Você pode aproveitar o suporte de presença do Realtime Database sincronizando o Cloud Firestore e o Realtime Database usando o Cloud Functions. Consulte Criar presença no Cloud Firestore . Presença suportada.

Consultando

Recupere, classifique e filtre dados de qualquer banco de dados por meio de consultas.

Cloud Firestore preferencial Banco de dados em tempo real
Consultas indexadas com classificação e filtragem compostas.
  • Você pode encadear filtros e combinar filtragem e classificação em uma propriedade em uma única consulta.
  • As consultas são superficiais: elas retornam apenas documentos de uma coleção ou grupo de coleções específico e não retornam dados de subcoleções.
  • As consultas devem sempre retornar documentos inteiros.
  • As consultas são indexadas por padrão: o desempenho da consulta é proporcional ao tamanho do seu conjunto de resultados, não ao seu conjunto de dados.
Consultas profundas com recursos limitados de classificação e filtragem .
  • As consultas podem classificar ou filtrar uma propriedade, mas não ambas.
  • As consultas são profundas por padrão: elas sempre retornam a subárvore inteira.
  • As consultas podem acessar dados em qualquer granularidade, até valores de nós folhas individuais na árvore JSON.
  • As consultas não requerem um índice; no entanto, o desempenho de determinadas consultas diminui à medida que o conjunto de dados cresce.

Gravações e transações

Cloud Firestore preferencial Banco de dados em tempo real
Operações avançadas de gravação e transação.
  • Escreva operações de dados por meio de operações de configuração e atualização, bem como transformações avançadas, como array e operadores numéricos.
  • As transações podem ler e gravar dados atomicamente de qualquer parte do banco de dados.
Operações básicas de gravação e transação.
  • Grave dados por meio de operações de configuração e atualização.
  • As transações são atômicas em uma subárvore de dados específica.

Confiabilidade e desempenho

Cloud Firestore preferencial Banco de dados em tempo real
O Cloud Firestore é uma solução regional e multirregional com escalabilidade automática.
  • Uma solução de baixa latência, com tempos de resposta típicos não superiores a 30 ms.
  • Aloja seus dados em vários data centers em regiões distintas, garantindo escalabilidade global e forte confiabilidade.
  • Disponível em configurações regionais ou multirregionais em todo o mundo.
Leia mais sobre as características de desempenho e confiabilidade do Cloud Firestore no Contrato de nível de serviço .
O Realtime Database é uma solução regional.
  • Disponível em configurações regionais. Os bancos de dados estão limitados à disponibilidade zonal dentro de uma região.
  • Latência extremamente baixa, com tempos de resposta típicos não superiores a 10 ms. Uma opção ideal para sincronização frequente de estado.
Leia mais sobre as características de desempenho e confiabilidade do Realtime Database no Acordo de Nível de Serviço .

Tempo de atividade

Cloud Firestore preferencial Banco de dados em tempo real
Desempenho de tempo de atividade extremamente alto.
  • Desempenho típico de tempo de atividade de 99,999%.
  • Se a disponibilidade for de extrema importância, por exemplo em aplicativos de comércio eletrônico, use o Cloud Firestore.
Alto desempenho de tempo de atividade.
  • Desempenho típico de tempo de atividade de 99,95%.

Escalabilidade

Cloud Firestore preferencial Banco de dados em tempo real
O dimensionamento é automático.
  • Escala de forma totalmente automática. Os limites de escalabilidade são de cerca de 1 milhão de conexões simultâneas e 10.000 gravações/segundo. Planejamos aumentar esses limites no futuro.
  • Tem limites nas taxas de gravação em documentos ou índices individuais.
O dimensionamento requer fragmentação.
  • Dimensione para cerca de 200.000 conexões simultâneas e 1.000 gravações/segundo em um único banco de dados. Escalar além disso requer a fragmentação de seus dados em vários bancos de dados.
  • Não há limites locais nas taxas de gravação de dados individuais.

Segurança

Cloud Firestore preferencial Banco de dados em tempo real
Regras não em cascata que combinam autorização e validação.
  • Lê e grava em SDKs móveis protegidos pelas regras de segurança do Cloud Firestore .
  • Lê e grava em SDKs de servidor protegidos pelo Identity and Access Management (IAM) .
  • As regras não são propagadas, a menos que você use um curinga.
  • As regras podem restringir consultas: se os resultados de uma consulta contiverem dados aos quais o usuário não tem acesso, toda a consulta falhará.
Linguagem de regras em cascata que separa autorização e validação.

Preços

Ambas as soluções estão disponíveis nos planos de preços Spark e Blaze .

Cloud Firestore preferencial Banco de dados em tempo real
Cobra principalmente sobre operações realizadas em seu banco de dados (leitura, gravação, exclusão) e, com uma taxa menor, largura de banda e armazenamento.

O Cloud Firestore oferece suporte a limites de gastos diários para projetos do App Engine, para garantir que você não ultrapasse os custos com os quais se sente confortável.

Leia mais sobre os planos de preços do Cloud Firestore .

Cobra apenas pela largura de banda e armazenamento , mas a uma taxa mais elevada.

Leia mais sobre os planos de preços do Realtime Database .

Usando Cloud Firestore e Realtime Database

Você pode usar os dois bancos de dados no mesmo aplicativo ou projeto do Firebase. Ambos os bancos de dados NoSQL podem armazenar os mesmos tipos de dados e as bibliotecas clientes funcionam de maneira semelhante. Lembre-se das diferenças descritas anteriormente se você decidir usar os dois bancos de dados no seu aplicativo .

Saiba mais sobre os recursos disponíveis no Realtime Database e no Cloud Firestore .

Pronto para escolher um banco de dados?

Esperamos que esta comparação tenha ajudado você a escolher uma solução de banco de dados Firebase. Agora você pode aprender como adicionar um banco de dados aos seus projetos do Firebase.