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!