Realtime Database x Firestore: nove diferenças principais

Tempo de leitura: 5 minutes

Quando se trata de hospedagem em nuvem e banco de dados, existem várias opções disponíveis para os desenvolvedores, como Firebase, Firestore, AWS, Google Cloud e assim por diante.

Neste artigo, você encontrará as principais diferenças que podem ajudá-lo a descobrir a melhor alternativa, especialmente entre o Firebase e o Firestore.

  • Cloud Firestore: é um novo banco de dados do Firebase usado para construir aplicativos móveis. Ele tem melhor escalabilidade do que um banco de dados em tempo real. Além disso, eles têm consultas mais rápidas com recursos mais ricos etc.
  • Firebase Realtime Database: é um banco de dados mais antigo e original que oferece uma solução de baixa latência para aplicativos móveis. Ele irá sincronizar seus dados instantaneamente.

Agora você pode estar pensando que os dois bancos de dados são bons. Então, com qual devo ir? Você pode responder a si mesmo assim que conhecer as principais diferenças.

1. Modelo de Dados

Não soa como o modelo de aprendizado de máquina? LOL. Mas isso não. Tristemente!

A boa notícia é que ambos possuem bancos de dados NoSQL. Descubra mais:

  • Firebase Real-time Database: no Firebase Real-time Database armazena dados em uma grande árvore JSON. É por isso que dados pequenos ou simples são fáceis de armazenar. Mas dados complexos e baseados em hierarquia são difíceis ou organizados quando são dimensionados.
Exemplo Google (do Site)
  • Cloud Firestore: no Cloud Firestore, os dados são armazenados como uma coleção de documentos. Dados pequenos são fáceis de armazenar em documentos muito semelhantes ao JSON. Por outro lado, os dados complexos e baseados em hierarquia do Cloud Firestore são muito fáceis de organizar em escala. Você pode usar subcoleção nos documentos. O Cloud Firestore requer menos normalização.
Exemplo – Google

 

2. Suporte em tempo real e online

Ambos os bancos de dados oferecem suporte ao modo offline (significa suporte ao armazenamento local) e aos SDKs em tempo real.

  • Real-time Database: suporte off-line apenas para dispositivos móveis (Android e iOS).
  • Cloud Firestore: suporte off-line para dispositivos móveis (Android e iOS) e clientes da Web também.

 

3. Presença

Pode ser muito útil coletar a informação de que seu cliente está online ou não.

  • Real-time Database: o Real-time Database registra o status da conexão do cliente e nos fornece atualizações sempre que a conexão do cliente está online ou offline.

Cloud Firestore: sem suporte nativo. Mas isso não significa que você não tenha acesso a esse recurso. Você pode usar o suporte de banco de dados em tempo real para presença, apenas sincronizando o Cloud Firestore e o banco de dados em tempo real com a ajuda das funções da nuvem.

4. Consultando

Você pode classificar, recuperar e filtrar qualquer tipo de dados de bancos de dados por meio de consultas.

  • Real-time Database: você pode usar consultas profundas. Mas tem algumas limitações na filtragem e classificação das funcionalidades. Você pode usar o filtro ou classificação em uma propriedade em sua consulta, mas não pode processar ambos. Por padrão, as consultas são profundas e sempre retornam uma subárvore completa.

  • Cloud Firestore: você pode usar consultas de índice com boa filtragem e classificação composta. Você pode usar a classificação, combinar filtragem e filtro em cadeia em cada propriedade em uma única consulta. Aqui as consultas são leves; eles retornam apenas um documento na coleção específica ou no grupo da coleção, mas nunca retornam dados da subcoleção. Isso significa que as consultas do Firestore devem retornar todo o documento.

 

5. Gravações e transações

  • Real-time Database: Real-time database oferece uma operação básica de gravações e transações. Como gravar dados por meio das operações de atualização e definição. Aqui, a transação está em uma subárvore de dados específica.

  • Cloud Firestore: o Cloud Firestore oferece gravações avançadas e operações de reação, como gravar dados por meio de operações de atualização e conjuntos, e você pode usar transformação avançada, ou seja, operações de array e numéricas etc. As transações podem gravar e ler dados automaticamente de qualquer parte do seu banco de dados.

 

6. Confiabilidade e desempenho

Confiabilidade e desempenho são partes importantes onde você pode decidir qual banco de dados deseja escolher.

  • Real-time Database: é uma solução de região única. Em uma única região, o banco de dados é limitado à disponibilidade zonal. Ele fornece uma latência baixa. Acho que é uma opção ideal para os aplicativos que usam sincronização frequente.
  • Cloud Firestore: é uma solução multirregional, o que significa que é escalonado automaticamente. Compartilhe seus dados em vários data centers em regiões separadas apenas para garantir que a escalabilidade seja global e nos forneça uma forte confiabilidade. Ele também fornece configurações regionais e multirregionais em todo o mundo.

7. Escalabilidade

  • Real-time Database: No real-time database, o processo de escalonamento não é automático, temos que escalar por conta própria. Ele dimensiona cerca de 200 mil conexões simultaneamente e oferece 1 mil gravações por segundo em um único banco de dados. O banco de dados em tempo real não oferece limite de gravações.
  • Cloud Firestore: no Cloud Firestore Scaling, o processo é automático. O Firebase faz isso por conta própria. No Cloud Firestore, ele pode ser dimensionado para mais de 1 milhão de conexões simultaneamente e oferece 10 mil gravações por segundo. E o Firebase vai aumentar esse limite no futuro. Mas a nuvem Firestore também tem um limite de gravações em todos os documentos ou índices.

 

8. Segurança

  • Real-time Database: a autorização e a validação são separadas. Grave e leia as regras dos SDKs móveis que são protegidos pelas regras do real-time database do Firebase. Você pode facilmente validar os dados separadamente com as regras válidas.
  • Cloud Firestore: autorização e validação são combinadas. Escreva e leia as regras dos SDKs móveis que são protegidos pelas regras de segurança do Firestore. Aqui, as regras podem restringir suas consultas porque, se o resultado de uma consulta for um tipo de dado ao qual o usuário não tem acesso, toda a consulta falhará.

 

9. Preços

Você pode verificar os detalhes de preços aqui plano Spark, plano Blaze, plano Flame.

  • Real-time Database: Firebase Real-time database cobra apenas pelo armazenamento e largura de banda, o que significa que outras coisas são gratuitas. mas acho que as taxas de armazenamento e largura de banda são um pouco altas.
  • Cloud Firestore: o Firebase cloud Firestore cobra sobre suas operações, como leitura, exclusão e gravação, e os custos de armazenamento e largura de banda são baixos, em vez de banco de dados em tempo real.

Em termos simples, se você estiver em pequena escala, use o Real-time ou se quiser crescer muito, vá com o Cloud Firestore.

 

Qual é o vencedor?

Eu recomendo que você vá com o Cloud Firestore.

O motivo é muito simples porque é um novo banco de dados e é recomendado pela equipe do Firebase.

Além disso, o Firestore oferece funcionalidade adicional, melhor desempenho, regras de segurança mais robustas e, o mais importante, é escalonável.