J'ai donc écrit un article de blog entier sur cette question, et je vous recommande de le consulter (ou la documentation officielle ) pour une réponse plus complète.
Mais si vous voulez le résumé rapide (-ish), le voici:
Meilleure interrogation et données plus structurées - Alors que la base de données en temps réel n'est qu'un arbre JSON géant, Cloud Firestore est un peu plus structuré. Toutes vos données sont constituées de documents (qui sont essentiellement des magasins de valeurs-clés) et de collections (qui sont des collections de documents). Les documents pointeront également fréquemment vers des sous-collections, qui contiennent d'autres documents, qui peuvent eux-mêmes contenir d'autres documents, etc.
Ces données structurées vous aident de deux manières. Tout d'abord, toutes les requêtes sont superficielles , ce qui signifie que vous pouvez demander un document sans saisir toutes les données en dessous. Cela signifie que vous pouvez conserver vos données de manière hiérarchique d'une manière qui vous semble plus logique sans avoir à vous soucier de garder votre base de données superficielle. Deuxièmement, vous avez des requêtes plus puissantes. Par exemple, vous pouvez désormais interroger plusieurs champs sans avoir à créer ces champs "combo" qui combinent (et dénormalisent) les données d'autres parties de votre base de données. Dans certains cas, Cloud Firestore exécutera simplement ces requêtes directement, et dans d'autres cas, il créera et maintiendra automatiquement des index pour vous.
Conçu pour évoluer - Cloud Firestore pourra évoluer mieux que la base de données en temps réel. Il est important de noter que vos requêtes s'adaptent à la taille de votre ensemble de résultats, et non de votre ensemble de données. La recherche restera donc rapide, quelle que soit la taille de votre ensemble de données.
Récupération manuelle plus facile des données - Comme la base de données en temps réel, vous pouvez configurer des écouteurs dans Cloud Firestore pour diffuser les modifications en temps réel. Mais si vous ne voulez pas ce genre de comportement, et que vous voulez juste un simple appel "récupérer mes données", Cloud Firestore a cela aussi, et il est intégré comme cas d'utilisation principal. (Ils sont bien meilleurs que les once
appels dans la base de données en temps réel)
Prise en charge multi-régions - Cela signifie essentiellement plus de fiabilité, car vos données sont partagées entre plusieurs centres de données à la fois. Mais vous avez toujours une forte cohérence, ce qui signifie que vous pouvez toujours faire une requête et être assuré que vous obtenez la dernière version de vos données.
Modèle de tarification différent - Alors que la base de données en temps réel facture principalement en fonction du stockage ou de la bande passante du réseau, Cloud Firestore facture principalement en fonction du nombre d'opérations que vous effectuez. Est-ce que ce sera mieux ou pire? Cela dépend de votre application.
Pour alimenter une application d'actualités, un jeu multijoueur au tour par tour ou quelque chose comme votre propre version de Stack Overflow, Cloud Firestore sera probablement assez favorable du point de vue des prix. Pour quelque chose comme une application de dessin de groupe en temps réel où vous envoyez plusieurs mises à jour par seconde à plusieurs personnes, cela coûtera probablement plus cher que la base de données en temps réel.
Pourquoi vous voudrez peut-être toujours utiliser la base de données en temps réel - Cela se résume à plusieurs raisons. 1) Cette chose "ce sera probablement moins cher pour les applications qui font beaucoup de mises à jour fréquentes" que j'ai mentionnée précédemment, 2) Elle existe depuis longtemps et a été testée par des milliers d'applications, 3) La latence est meilleure et lorsque vous avez besoin de quelque chose avec une faible latence fiable pour une sensation en temps réel, la base de données en temps réel peut mieux fonctionner.
Pour la plupart des nouvelles applications, nous vous recommandons de consulter Cloud Firestore. Mais si vous avez une application qui est déjà dans la base de données en temps réel, je ne recommande pas vraiment de changer juste pour le plaisir de changer, sauf si vous avez une raison impérieuse de le faire.
J'espère que cela pourra aider!