O Google acaba de lançar o Cloud Firestore, seu novo banco de dados de documentos para aplicativos.
Eu tenho lido a documentação, mas não vejo muitas diferenças entre o Firestore e o Firebase DB.
O ponto principal é que o Firestore usa documentos e coleções que permitem o uso fácil de consultas em comparação com o Firebase, que é um banco de dados noSQL tradicional com base em JSON.
Gostaria de saber um pouco mais sobre suas diferenças, usos ou se o Firestore acabou de substituir o Firebase DB?
firebase
firebase-realtime-database
google-cloud-platform
google-cloud-firestore
Francisco Durdin Garcia
fonte
fonte
Respostas:
Por isso, escrevi um post inteiro sobre essa questão e recomendo que você verifique (ou a documentação oficial ) para obter uma resposta mais completa.
Mas se você quiser o resumo rápido (-ish), aqui está:
Melhor consulta e dados mais estruturados - Embora o Banco de Dados em Tempo Real seja apenas uma árvore JSON gigante, o Cloud Firestore é um pouco mais estruturado. Todos os seus dados consistem em documentos (que são basicamente armazenamentos de valores-chave) e coleções (que são coleções de documentos). Os documentos também apontam frequentemente para subcoleções, que contêm outros documentos, que podem conter outros documentos, etc.
Esses dados estruturados ajudam você de duas maneiras. Primeiro, todas as consultas são superficiais , o que significa que você pode solicitar um documento sem pegar todos os dados abaixo. Isso significa que você pode manter seus dados armazenados hierarquicamente de uma maneira que faça mais sentido para você, sem ter que se preocupar em manter seu banco de dados superficial. Segundo, você tem consultas mais poderosas. Por exemplo, agora você pode consultar vários campos sem precisar criar esses campos "combinados" que combinam (e desnormalizam) dados de outras partes do seu banco de dados. Em alguns casos, o Cloud Firestore apenas executa essas consultas diretamente e, em outros casos, cria e mantém automaticamente índices para você.
Projetado para escalar - o Cloud Firestore poderá escalar melhor que o banco de dados em tempo real. É importante observar que suas consultas são dimensionadas para o tamanho do seu conjunto de resultados, não para o seu conjunto de dados. Portanto, a pesquisa permanecerá rápida, independentemente do tamanho do seu conjunto de dados.
Busca manual mais fácil de dados - como o banco de dados em tempo real, você pode configurar ouvintes no Cloud Firestore para transmitir as alterações em tempo real. Mas se você não deseja esse tipo de comportamento e apenas deseja uma chamada simples "buscar meus dados", o Cloud Firestore também o possui, e é incorporado como um caso de uso principal. (Eles são muito melhores do que as
once
chamadas na terra do banco de dados em tempo real)Suporte para várias regiões - Isso basicamente significa mais confiabilidade, pois seus dados são compartilhados em vários data centers ao mesmo tempo. Mas você ainda tem uma consistência forte, o que significa que você sempre pode fazer uma consulta e ter certeza de que está obtendo a versão mais recente dos seus dados.
Modelo de preços diferente - enquanto o Banco de Dados em Tempo Real cobra principalmente com base no armazenamento ou na largura de banda da rede, o Cloud Firestore cobra principalmente com base no número de operações que você executa. Isso será melhor ou pior? Depende do seu aplicativo.
Para ativar um aplicativo de notícias, um jogo multiplayer baseado em turnos ou algo como sua própria versão do Stack Overflow, o Cloud Firestore provavelmente parecerá bastante favorável do ponto de vista de preços. Para algo como um aplicativo de desenho em grupo em tempo real para o qual você envia várias atualizações por segundo para várias pessoas, provavelmente será mais caro que o Banco de Dados em Tempo Real.
Por que você ainda pode querer usar o banco de dados em tempo real - tudo se resume a alguns motivos. 1) Essa coisa toda "provavelmente será mais barata para aplicativos que fazem muitas atualizações frequentes" que eu mencionei anteriormente, 2) já existe há muito tempo e foi testada em batalha por milhares de aplicativos, 3) tem melhor latência e quando você precisar de algo com latência confiável e baixa para ter uma sensação em tempo real, o banco de dados em tempo real poderá funcionar melhor.
Para a maioria dos aplicativos novos, recomendamos que você confira o Cloud Firestore. Mas se você tiver um aplicativo que já esteja no banco de dados em tempo real, não recomendo a troca apenas por uma questão de troca, a menos que você tenha um motivo convincente para fazê-lo.
Espero que ajude!
fonte
Você pode ler o artigo completo aqui: https://medium.com/@beingrahul/firebase-cloud-firestore-vs-firebase-realtime-database-931d4265d4b0
Firebase Realtime database
que é estruturado como uma árvore JSON, mas queCloud Firestore
é armazenado em documentos (que é um conjunto de pares de valores-chave) e formatos de coleção (que é uma coleção de documentos).Mais dados de estrutura
O banco de dados em tempo real armazenou dados na árvore JSON, mas o Cloud armazenou dados armazenados em documentos muito semelhantes ao JSON.
No Cloud FireStore, os Documentos podem conter sub-coleções e objetos aninhados (como 'telefone' na figura acima), os quais podem incluir campos primitivos, como cadeias de caracteres (como 'nome', 'email' etc. na figura acima) ou objetos complexos como listas.
Melhor consulta
Escalabilidade
O Cloud Firestore poderá escalar melhor que o banco de dados em tempo real. É importante observar que o desempenho da sua consulta é proporcional ao tamanho do seu conjunto de resultados, não ao seu conjunto de dados. Portanto, a pesquisa permanecerá rápida, independentemente do tamanho do seu conjunto de dados.
Busca manual de dados
Podemos ouvir dados em tempo real no banco de dados do Cloud FireStore, como em tempo real, mas no Cloud FireStore, também podemos buscar dados manualmente (se você quiser ver os dados apenas uma vez).
Segurança
No banco de dados em tempo real, precisamos validar dados separadamente usando a regra de validação, mas no Cloud FireStore, a validação de dados ocorre automaticamente.
Escrevendo os dados
Podemos executar várias operações como um único lote e concluí-las atomicamente, com qualquer combinação dos métodos
set()
,update()
oudelete()
.Preços
No banco de dados em tempo real, cobra apenas pela largura de banda e armazenamento, mas a uma taxa mais alta. Enquanto estiver no Cloud FireStore, cobra principalmente pelas operações realizadas no seu banco de dados (leitura, gravação, exclusão) e, em uma taxa mais baixa, largura de banda e armazenamento.
fonte
Razões para escolher o Cloud Firestore em vez do banco de dados em tempo real
É uma versão melhorada
O banco de dados do Firebase foi suficiente para aplicativos básicos. Mas não era poderoso o suficiente para lidar com requisitos complexos. É por isso que o Cloud Firestore é apresentado. Aqui estão algumas mudanças importantes.
Preços
No Cloud Firestore, as taxas diminuíram, mesmo cobrando principalmente as operações executadas no banco de dados, juntamente com a largura de banda e o armazenamento. Você também pode definir um limite de gastos diários. Aqui estão os detalhes completos sobre o faturamento.
Planos futuros do Google
Quando descobriram as falhas do banco de dados em tempo real, eles criaram outro produto, em vez de melhorar o antigo. Embora não haja detalhes confiáveis que revelem suas classificações atuais no banco de dados em tempo real, é hora de começar a pensar que é provável que seja abandonado.
fonte
Sugerir link do google também: Firebase Real-time Database vs FireStore
Extraído do google docs, uma pequena sumamry aqui:
O FireBase Real Time DB é um banco de dados NO SQL DB baseado em JSON, destinado a aplicativos móveis, regionais e usado normalmente para armazenar e sincronizar dados entre usuários / dispositivos em tempo real / latência extremamente baixa.
O FireStore é um banco de dados NOSQL semelhante ao JSON, criado para alta simultaneidade, persistência global e de fácil escalabilidade automática, projetado para qualquer cliente (não apenas aplicativos móveis) com casos de uso típicos, como rastreamento de ativos, análise em tempo real, criação de catálogos de produtos de varejo, usuário social perfil, classificações de jogos, aplicativos baseados em bate-papo etc.
fonte