Escolher um banco de dados: Cloud Firestore ou Realtime Database

O Firebase fornece duas soluções de banco de dados baseadas em nuvem e acessíveis ao cliente que oferecem suporte à sincronização de dados em tempo real:

  • Realtime Database é o banco de dados original do Firebase. É uma solução eficiente e de baixa latência para aplicativos móveis que exigem estados sincronizados entre clientes em tempo real.
  • Cloud Firestore é o novo banco de dados principal do Firebase para o desenvolvimento de aplicativos para dispositivos móveis. Ele oferece resultados ainda melhores que o Realtime Database com um novo modelo de dados mais intuitivo. O Cloud Firestore também tem consultas mais avançadas e rápidas e melhor escalabilidade que o Realtime Database.

Qual banco de dados é ideal para seu projeto?

Recomendamos o Cloud Firestore para a maioria dos desenvolvedores que iniciam um novo projeto. O Cloud Firestore oferece recursos adicionais e melhor desempenho e escalabilidade em uma infraestrutura projetada para oferecer suporte a recursos mais avançados em lançamentos futuros. Em breve, lançaremos novos tipos de consulta, regras de segurança mais robustas e melhorias de desempenho nos recursos avançados para o Cloud Firestore.

Como você está escolhendo entre soluções de banco de dados, considere as seguintes diferenças entre o Cloud Firestore e o Realtime Database.

Modelo de dados

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

Realtime Database 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.

Armazena dados em documentos organizados em coleções.
  • Dados simples são fáceis de armazenar em documentos, que são muito semelhantes aos da árvore JSON.
  • Dados complexos e hierárquicos são mais fáceis de organizar em escala, utilizando subcoleções dentro dos documentos.
  • Requer menos desnormalização e desdobramento de dados.

Saiba mais sobre o modelo de dados do Cloud Firestore.

Suporte em tempo real e off-line

Ambos possuem SDKs em tempo real com prioridade para dispositivos móveis e oferecem suporte ao armazenamento de dados locais para aplicativos off-line.

Realtime Database Cloud Firestore
Suporte off-line para clientes móveis apenas no iOS e Android. Suporte off-line para clientes iOS, Android e da Web.

Consulta

Recupere, classifique e filtre dados de qualquer um dos bancos de dados por meio de consultas.

Realtime Database Cloud Firestore
Consultas avançadas com funcionalidade limitada de classificação e filtragem.
  • Você só pode classificar ou filtrar uma propriedade, não classificar e filtrar uma propriedade em uma única consulta.
  • As consultas são profundas por padrão: elas sempre retornam toda a subárvore.
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.
  • Grave consultas superficiais para subcoleções: você pode consultar subcoleções dentro de um documento em vez de uma coleção inteira, ou mesmo um documento inteiro.
  • As consultas são indexadas por padrão: o desempenho da consulta é proporcional ao tamanho do seu conjunto de resultados, e não ao seu conjunto de dados.

Gravações e transações

Realtime Database Cloud Firestore
Operações básicas de gravação e transação.
  • Grave dados como uma operação individual.
  • As transações nos SDKs nativos exigem um retorno de chamada de conclusão.
Operações atômicas de gravação e transação.

Confiabilidade e desempenho

Realtime Database Cloud Firestore
O Realtime Database é uma solução regional.
  • Como a latência muito baixa, é uma ótima opção para sincronizações de estado frequentes.
  • Os bancos de dados estão limitados à disponibilidade geográfica em uma única região.
Saiba mais sobre o desempenho do Realtime Database e as características de confiabilidade no Contrato de nível de serviço.
O Cloud Firestore é uma solução de várias regiões com escalonamento automático.
  • Armazena seus dados em vários centros de dados em regiões distintas, garantindo escalabilidade global e forte confiabilidade.
  • Oferece a estabilidade e a confiabilidade do Google Cloud Platform.
Saiba mais sobre as características de desempenho e confiabilidade do Cloud Firestore no Contrato de nível de serviço.

Escalonabilidade

Realtime Database Cloud Firestore
O escalonamento requer fragmentação.

Escalonamento para cerca de 100.000 conexões simultâneas e 1.000 gravações/segundo em um único banco de dados. Realizar um escalonamento acima desse número requer a fragmentação de dados em vários bancos de dados.

O escalonamento é automático.

Escala completamente de maneira automática. Atualmente, os limites de escalonamento estão em torno de 1 milhão de conexões simultâneas e 10.000 gravações/segundo. Planejamos aumentar esses limites no futuro.

Segurança

Realtime Database Cloud Firestore
Regras em cascata que exigem validação separada. Segurança mais simples e eficiente para os SDKs de dispositivos móveis, Web e servidores.
  • Os SDKs de dispositivos móveis e Web usam as regras de segurança do Cloud Firestore. Os SDKs de servidores usam o gerenciamento de identidade e acesso (IAM).
  • As regras não são aplicadas em cascata, a menos que você use um caractere curinga.
  • A validação de dados ocorre automaticamente.
  • As regras podem restringir consultas: se os resultados de uma consulta tiverem dados aos quais o usuário não tenha acesso, toda a consulta falhará.

Preço

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

Realtime Database Cloud Firestore
Apenas largura de banda e armazenamento são cobrados, porém a uma taxa maior.

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

Cobra principalmente por operações realizadas no seu banco de dados (leitura, gravação, exclusão) e, a uma taxa menor, por largura de banda e armazenamento.

O Cloud Firestore oferece suporte para limites de gastos diários para os projetos do Google App Engine. Assim, você não ultrapassa os gastos que programou.

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

Como usar o Cloud Firestore e o Realtime Database

Você pode usar ambos os bancos de dados no mesmo app ou projeto do Firebase. Ambos os bancos de dados NoSQL podem armazenar os mesmos tipos de dados, e as bibliotecas de cliente funcionam de maneira semelhante. Considere as diferenças descritas acima se você decidir usar ambos os bancos de dados no seu app.

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

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.