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:
O Cloud Firestore é o mais novo banco de dados do Firebase para o desenvolvimento de apps para dispositivos móveis. Ele se baseia nos resultados do Realtime Database com um novo modelo de dados mais intuitivo. O Cloud Firestore também tem consultas mais avançadas e rápidas, além de melhor escalonamento que o Realtime Database.
O Realtime Database é o banco de dados original do Firebase. Ele é uma solução eficiente e de baixa latência para aplicativos móveis que exigem estados sincronizados entre clientes em tempo real.
Qual banco de dados o Firebase recomenda?
Sua escolha de solução de banco de dados dependerá de muitos fatores, mas, quando se trata de determinados recursos, podemos fazer recomendações sobre qual banco de dados é ideal para você.
Ambas as soluções oferecem:
- SDKs com prioridade para o cliente, sem servidores para implantar e manter
- Atualizações em tempo real
- Nível gratuito e pagamento de acordo com o uso
Principais considerações
Além de ótimos recursos principais comuns aos dois bancos de dados, pense em como uma ou todas as considerações listadas abaixo afetarão o sucesso dos seus aplicativos.
Papel do banco de dados |
Meu aplicativo usa um banco de dados…
Principalmente para sincronizar dados com consultas básicas.
Se consultas, classificações e transações avançadas não forem necessárias,
recomendamos o Realtime Database.
Fazer consultas, classificações e transações avançadas.
Se interações complexas com seus dados forem necessárias, por exemplo, em
apps de e-commerce, recomendamos o Cloud Firestore.
|
Operações em dados |
O uso do banco de dados do meu app usa…
Alguns GB ou menos de dados que são alterados com frequência.
Se o app enviar um stream de pequenas atualizações, como
em um app de lousa interativa digital, recomendamos o Realtime Database.
Centenas de GB ou TBs de dados lidos com muito mais frequência
do que são alterados.
Para conjuntos de dados muito grandes e quando as operações em lote são
necessárias com frequência, recomendamos o Cloud Firestore.
|
Modelo de dados |
Prefiro estruturar meus dados como…
Uma árvore JSON simples.
Para dados não estruturados JSON, recomendamos o Realtime Database.
Documentos organizados em coleções.
Para documentos e coleções estruturados, recomendamos o
Cloud Firestore.
|
Disponibilidade |
Minhas necessidades de disponibilidade são…
Garantia de tempo de atividade extremamente alta de 99,999%.
Se a disponibilidade for da maior importância, por exemplo, em
aplicativos de comércio eletrônico, recomendamos o Cloud Firestore.
Uma garantia de pelo menos 99,95% de tempo de atividade.
Quando uma disponibilidade muito alta, mas não importante, é aceitável,
recomendamos o Cloud Firestore ou o
Realtime Database.
|
Consultas off-line em dados locais |
Meu app precisará realizar consultas em dispositivos com conectividade limitada ou sem
conexão…
Frequentemente.
Para recursos de consulta sofisticados em dados locais quando o
usuário está off-line, recomendamos o Cloud Firestore.
Raramente ou nunca.
Se os usuários precisam ficar sempre on-line,
recomendamos o Cloud Firestore ou o Realtime Database.
|
Número de instâncias do banco de dados |
Nos meus projetos individuais, preciso usar…
Muitos bancos de dados, por exemplo, um banco de dados para cada cliente principal.
Como ele permite adicionar vários bancos de dados a um único projeto
do Firebase, recomendamos o Realtime Database.
Apenas um banco de dados.
Se você precisar de apenas um banco de dados, recomendamos o
Cloud Firestore ou o Realtime Database.
|
Quais são os outros pontos importantes a considerar?
Depois de pensar nas principais considerações anteriores, talvez seja o momento de escolher um banco de dados. Se você ainda estiver avaliando os prós e contras, esta seção aborda outras 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.
Saiba mais sobre o modelo de dados do Realtime Database. |
Armazena dados como coleções de documentos.
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 da Apple e do Android. | Suporte off-line para clientes da Apple, do Android e da Web. |
Presença
Pode ser útil saber quando um cliente está on-line ou off-line. O Firebase Realtime Database pode registrar o status da conexão do cliente e fornecer atualizações sempre que esse estado for alterado.
Realtime Database | Cloud Firestore |
---|---|
Presença compatível. | Sem suporte nativo. É possível aproveitar a compatibilidade do Realtime Database com a presença sincronizando o Cloud Firestore e o Realtime Database usando o Cloud Functions. Consulte Criar presença no Cloud Firestore. |
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.
|
Consultas indexadas com
classificação e filtragem compostas.
|
Gravações e transações
Realtime Database | Cloud Firestore |
---|---|
Operações básicas de gravação e transação.
|
Operações avançadas de gravação e transação.
|
Confiabilidade e desempenho
Realtime Database | Cloud Firestore |
---|---|
O Realtime Database é uma solução regional.
|
O Cloud Firestore é uma solução regional e multirregional com escalonamento
automático.
|
Escalonabilidade
Realtime Database | Cloud Firestore |
---|---|
O escalonamento requer fragmentação.
|
O escalonamento é automático.
|
Segurança
Realtime Database | Cloud Firestore |
---|---|
Linguagem de regras aplicadas em cascata que separa autorização e validação.
|
Regras que não são aplicadas em cascata e que combinam autorização e validação.
|
Preços
Ambas as soluções estão disponíveis nos planos de preços Spark 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. |
A cobrança é realizada 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 a limites de gastos diários para os projetos do App Engine. Assim, você não ultrapassa os gastos que programou. Saiba 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.
Tudo pronto para escolher um banco de dados?
Esperamos que essa comparação tenha ajudado na escolha de uma solução de banco de dados do Firebase. Agora você pode aprender a adicionar um banco de dados aos seus projetos do Firebase.
- Para o Cloud Firestore, consulte Introdução ao Cloud Firestore.
- No caso do Realtime Database, leia o tópico de introdução para sua plataforma: Apple, Android, C ++, Unity, Web ou REST.