Realtime vs Cloud Firestore: qual banco de dados Firebase escolher
Publicados: 2018-10-12A história remonta ao banco de dados do Firebase não muito além. Fundado como uma plataforma de desenvolvimento móvel e web, o Firebase foi criado em 2011 e, em 2014, foi adquirido pela gigante de tecnologia Google e seu destino mudou.
Ignorando a história da evolução do Firebase, um ano após sua aquisição pelo Google, ele foi fundido com a Divshot e desde então expandiu-se para se tornar uma plataforma unificada para desenvolvedores móveis.
O Firebase agora se integra a vários outros serviços do Google para oferecer produtos mais amplos e escalabilidade para desenvolvedores. Na verdade, os benefícios que ele oferece tornam o Firebase para startups um processo em alta.
Então, o que é o banco de dados Firebase? O Firebase é um BaaS, ou seja, Backend as a Service. Usando os produtos fornecidos pelo Firebase, não são apenas os desenvolvedores de dispositivos móveis que podem criar aplicativos de alta qualidade. O Google também lançou vários novos recursos para usuários da Web do Firebase.
Existem dois produtos do Firebase que permitem construir todos os aplicativos que acabamos de mencionar. Tempo real e Cloud Firestore.
O tempo real é o produto bem estabelecido do banco de dados Firebase do Google e o Cloud Firestore, embora prometendo melhores tecnologias, ainda está em fase de teste beta.
De acordo com o Google :
O banco de dados em tempo real é o banco de dados original do Firebase. É uma solução eficiente e de baixa latência para um aplicativo móvel que requer estados sincronizados entre clientes em tempo real.
O Cloud Firestore é o novo banco de dados principal do Firebase para desenvolvimento de aplicativos para dispositivos móveis . Ele melhora os sucessos do Realtime Database com um novo modelo de dados mais intuitivo. O Cloud Firestore também oferece consultas mais avançadas e rápidas e escala melhor do que o Realtime Database.
Antes de chegarmos às propriedades individuais do Realtime Database e do Cloud Firestore, vejamos quais são as vantagens e desvantagens de usar o banco de dados Firebase para seu próximo projeto:
Vantagens do Firebase Database:
Se dermos uma olhada na lista de razões pelas quais se deve usar o banco de dados Firebase como seu banco de dados único para todo o desenvolvimento de aplicativos móveis e da Web , veremos por que o Firebase db se tornou um grande sucesso no setor de desenvolvimento de aplicativos móveis.
- Fácil migração de dados – Os desenvolvimentos recentes deram aos desenvolvedores as ferramentas para migrar facilmente os dados.
- Nenhum conhecimento extra é necessário – é necessário quase zero conhecimento sobre devOps ou sysadmin para operar no Firebase db.
- Validação de vários tipos de dados – Embora a estrutura do banco de dados do Firebase não tenha esquemas, ela ainda tem a capacidade básica de validar vários tipos de dados.
- Ferramenta completa – É uma ferramenta abrangente e a única que você necessariamente precisa para o back-end de um pequeno aplicativo móvel.
- Mais fácil de usar – O nível de dificuldade de uso é um pouco acima da média, mas é mais fácil do que a maioria dos outros sistemas quando se trata de integração com a análise e monitoramento de falhas
- Uso Gratuito – É gratuito na fase inicial para que os desenvolvedores que estão testando pela primeira vez não precisem se preocupar em fazer um grande investimento inicial
- Rich Code Libraries – Todas as bibliotecas de código em linguagens de programação são semelhantes e bem mantidas também para iniciantes.
- Estrutura de dados JSON – A estrutura de dados é JSON que mapeia perfeitamente com o JavaScript da interface do usuário.
- Desenvolvimento rápido – Fazer um aplicativo do zero é muito rápido – autenticação, email, versionamento, hospedagem, monitoramento, DevOps, uptime.
- Streaming fácil – O funcionamento em tempo real ou as atualizações de streaming são muito fáceis.
Vamos agora comparar o banco de dados Realtime e o Cloud Firestore para ter uma compreensão mais clara de quando usar qual. O Cloud Firestore ainda está em fase de teste beta e está procurando e funcionando de uma maneira mais promissora do que o banco de dados em tempo real. Nesta comparação, veremos como os dois bancos de dados diferem um do outro e quem ganha o banco de dados em tempo real versus o cloud firestore.
Modelo de dados
- O banco de dados em tempo real armazena dados como uma grande árvore JSON, o que facilita muito o armazenamento de dados simples, mas os dados complexos ou hierárquicos são mais difíceis de organizar em escala.
- O Cloud Firestore , por outro lado, armazena dados na forma de documentos organizados em coleções. Nisso, o armazenamento de dados simples é semelhante ao JSON e é armazenado em documentos. Já os dados complexos ou hierárquicos não são mais fáceis de organizar em escala com o uso de subcoleções dentro dos documentos. E, em geral, requer menos desnormalização e achatamento de dados.
Suporte em tempo real e offline
- O banco de dados em tempo real fornece suporte offline apenas para clientes móveis Android e iOS.
- O Cloud Firestore , por outro lado, também oferece suporte offline para Android, iOS e clientes da Web.
Consulta
- O banco de dados em tempo real fornece consultas profundas com funcionalidade limitada de classificação e filtragem, onde os desenvolvedores podem classificar ou filtrar uma propriedade em uma única consulta. E todas as consultas são profundas por padrão, ou seja, sempre retornam a subárvore inteira.
- Consulta de índices do Cloud Firestore com classificação e filtragem compostas em que os desenvolvedores podem filtrar em cadeia e combinar filtragem e classificação em uma propriedade em uma única consulta. Também é possível escrever consultas superficiais para subcoleções, ou seja, os desenvolvedores podem consultar em um documento em vez de uma coleção inteira ou um documento inteiro. Não apenas isso, mas as consultas são indexadas por padrão, isso significa que o desempenho da consulta é proporcional ao tamanho do conjunto de resultados e não ao conjunto de dados.
Transações
- No banco de dados em tempo real , existem operações básicas de gravação e transação. Os dados de gravação funcionam como uma operação individual e as transações exigem um retorno de chamada de conclusão nos SDKs nativos.
- O Cloud Firestore permite operações de gravação e transação atômicas. Ele agrupa as operações e as completa automaticamente. Além disso, as transações se repetem automaticamente até serem concluídas.
Desempenho e confiabilidade
- O banco de dados em tempo real é um produto maduro. Tem a estabilidade do produto verdadeiro várias vezes experimentado e testado. Ele também tem latência muito baixa, por isso é uma boa opção para sincronização de estado frequente. Embora os bancos de dados estejam limitados à disponibilidade zonal em uma única região.
- O desempenho do Cloud Firestore ainda não pode ser medido porque ainda está em fase beta. E a estabilidade do produto beta não é a mesma de um produto totalmente lançado. Mas em termos de confiabilidade, o Cloud Firestore hospeda todos os seus dados em vários data centers em diferentes regiões, garantindo escalabilidade global e alta confiabilidade. Em teoria, sempre que o Cloud Firestore sair da versão beta, ele terá uma confiabilidade mais forte do que o banco de dados em tempo real.
Escalabilidade
- No banco de dados em tempo real , o dimensionamento requer fragmentação. Para simplificar, dimensione para aproximadamente 100.000 conexões simultâneas e 1.000 gravações/segundo em um único banco de dados e, além disso, requer a fragmentação de seus dados em vários bancos de dados.
- Quando o Cloud Firestore sair da versão beta, o escalonamento será automático e os desenvolvedores não precisarão fragmentar seus dados em várias instâncias.
Segurança
- O banco de dados em tempo real possui regras em cascata que exigem validação separada. As regras do banco de dados do Firebase são as únicas opções de segurança aqui e os desenvolvedores precisam validar os dados separadamente usando a regra 'validate'.
- O Cloud Firestore tem uma segurança mais simples e poderosa para SDKs para dispositivos móveis, Web e servidores que usam o Identity and Access Management (IAM). A validação de dados também acontece automaticamente. Além disso, as regras podem restringir as consultas, ou seja, se os resultados de uma consulta contiverem dados aos quais o desenvolvedor não tem acesso, a consulta inteira falhará.
Preços
- O banco de dados em tempo real cobra apenas por largura de banda e armazenamento, mas a um preço mais alto.
- O Cloud Firestore , por outro lado, cobra principalmente pelas operações realizadas em seu banco de dados (leitura, gravação, exclusão) e em menor taxa, largura de banda e armazenamento. Ele também suporta limites de gastos diários para projetos do Google App Engine.
Você ainda está se perguntando como o Firebase funciona? Vamos rebobinar um resumo do que conhecemos no artigo acima.
Quando usar o Realtime Database:
- Se seus dados são simples e não complexos ou hierárquicos
- Se você precisar dimensionar menos de 100.000 conexões simultâneas, 1.000 gravações/segundo em um único banco de dados
- Quando você precisa de um banco de dados que cobra pela largura de banda geral e pelo armazenamento e não pelas operações individuais executadas.
Quando usar o banco de dados do Cloud Firestore:
- Se seus dados são complexos ou hierárquicos
- Se seus dados forem dimensionados para mais de 100.000 conexões simultâneas
- Se você precisar de um limite de gastos mais preciso e um banco de dados que cobra principalmente em 1, são PicCollage, Fabulous, Shazam e Skyscanner e todos podemos concordar que eles estão funcionando com sucesso.
Em conclusão, os modelos de banco de dados do Firebase estão indo bem para eles. O Firebase em tempo real está funcionando com sucesso há anos e no ano passado com o lançamento da versão beta do Cloud Firestore, coisas melhores estão reservadas para desenvolvedores de aplicativos móveis e empresas de desenvolvimento de aplicativos.