J'ai donc écrit un article de blog entier sur cette même question, et je vous recommande de le consulter (ou le documentation officielle ) pour une réponse plus complète.
Mais si vous voulez un résumé rapide, le voici :
De meilleures requêtes et des 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 pointent souvent 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. Premièrement, toutes les requêtes sont superficielles Cela signifie que vous pouvez demander un document sans saisir toutes les données qu'il contient. Cela signifie que vous pouvez conserver vos données stockées de manière hiérarchique d'une manière plus logique pour vous sans avoir à vous soucier de la superficialité de votre base de données. Deuxièmement, les requêtes sont plus puissantes. Par exemple, vous pouvez désormais effectuer des requêtes sur plusieurs champs sans avoir à créer ces champs "combo" qui combinent (et dénormalisent) les données provenant d'autres parties de votre base de données. Dans certains cas, Cloud Firestore se contentera d'exécuter ces requêtes directement, et dans d'autres, il créera et maintiendra automatiquement des index pour vous.
Conçu pour être mis à l'échelle -- Cloud Firestore sera capable d'évoluer mieux que la base de données en temps réel. Il est important de noter que vos requêtes évoluent en fonction de 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 des données plus facile -- Comme pour 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 souhaitez pas ce type de comportement, et que vous voulez juste un simple appel "récupérer mes données", Cloud Firestore le permet également, et il est intégré en tant que cas d'utilisation principal. (Ils sont bien meilleurs que les once
appels dans le pays des bases de données en temps réel)
Support multirégional -- Cela signifie essentiellement une plus grande fiabilité, car vos données sont partagées entre plusieurs centres de données à la fois. Mais la cohérence reste forte, ce qui signifie que vous pouvez toujours effectuer une requête et être sûr d'obtenir la dernière version de vos données.
Un modèle de tarification différent -- Alors que la base de données en temps réel est principalement facturée sur la base du stockage ou de la bande passante du réseau, Cloud Firestore est principalement facturée sur la base de la capacité de stockage. nombre d'opérations que vous exécutez. 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 d'un point de vue tarifaire. Pour quelque chose comme une application de dessin de groupe en temps réel où vous envoyez plusieurs mises à jour par seconde à plusieurs personnes, il sera probablement plus cher que la base de données en temps réel.
Pourquoi vous voulez toujours utiliser la base de données en temps réel ? -- Il y a plusieurs raisons à cela.
-
J'ai déjà évoqué le fait que "les applications qui font beaucoup de mises à jour fréquentes seront probablement moins chères",
-
Il existe depuis longtemps et a été testé par des milliers d'applications,
-
Elle a une meilleure latence et lorsque vous avez besoin d'un outil avec une latence faible et fiable pour une sensation de temps réel, la base de données Realtime est peut-être plus adaptée.
Pour la plupart des nouvelles applications, nous vous recommandons de consulter le Cloud Firestore. Mais si vous avez une application qui est déjà sur la base de données en temps réel, je ne vous recommande pas vraiment de changer pour le simple plaisir de changer, sauf si vous avez une raison impérieuse de le faire.
J'espère que cela vous aidera !
5 votes
Les lectures sont plus rapides sur Firestore, les écritures sont plus rapides sur Firebase Real Time Database.