Google vient de publier Cloud Firestore, sa nouvelle base de données de documents pour applications.
J'ai lu la documentation mais je ne vois pas beaucoup de différences entre Firestore et Firebase DB.
Le point essentiel est que Firestore utilise des documents et des collections qui facilitent l’utilisation des requêtes par rapport à Firebase, qui est une base de données noSQL traditionnelle avec une base JSON.
J'aimerais en savoir un peu plus sur leurs différences, leurs usages, ou si Firestore vient juste de remplacer Firebase DB?
J'ai donc écrit un article complet sur le blog à propos de cette question, et je vous recommande de vérifier (ou le 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 - Bien que la base de données en temps réel ne soit 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 renvoient également fréquemment à des sous-groupes, qui contiennent d'autres documents, qui peuvent eux-mêmes en contenir d'autres, 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 ci-dessous. Cela signifie que vous pouvez conserver vos données stockées de manière hiérarchique de manière 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) des données provenant d'autres parties de votre base de données. Dans certains cas, Cloud Firestore exécutera simplement ces requêtes directement. Dans d'autres cas, il créera et gérera automatiquement des index pour vous.
Conçu pour être redimensionné - Cloud Firestore sera en mesure de mieux redimensionner 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 jeu de résultats, pas à votre jeu de données. La recherche restera donc rapide quelle que soit la taille de votre ensemble de données.
Extraction manuelle plus facile des données - À l'instar de la base de données en temps réel, vous pouvez configurer des écouteurs dans Cloud Firestore pour qu'ils diffusent 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 en a aussi, et il est intégré dans un scénario d'utilisation principal. (Ils sont bien meilleurs que les appels once
dans Real Time Database-Land)
Prise en charge de plusieurs régions - Cela signifie essentiellement plus de fiabilité, car vos données sont partagées entre plusieurs centres de données à la fois. Cependant, vous avez toujours une forte cohérence, ce qui signifie que vous pouvez toujours faire une requête et avoir la certitude que vous obtenez la dernière version de vos données.
Modèle de tarification différent - Alors que la base de données Realtime facture principalement en fonction du stockage ou de la bande passante du réseau, Cloud Firestore facture principalement en fonction de nombre d'opérations que vous effectuez. Sera-ce mieux ou pire? Cela dépend de votre application.
Pour pouvoir alimenter une application d'actualités, un jeu multijoueur par tour, ou quelque chose comme votre propre version de Stack Overflow, Cloud Firestore sera probablement très 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 Realtime.
Pourquoi voulez-vous toujours utiliser la base de données en temps réel - Cela tient à plusieurs raisons. 1) Le tout "ça va probablement être moins cher pour les applications qui font beaucoup de mises à jour fréquentes" chose que j'ai mentionnée précédemment, 2) Cela existe depuis longtemps et a été testé par des milliers d'applications (Cloud Firestore est encore en version bêta ), 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 Realtime peut fonctionner mieux.
Pour la plupart des nouvelles applications, nous vous recommandons de consulter Cloud Firestore. Mais si vous avez déjà une application qui se trouve déjà dans la base de données Realtime, je ne vous recommande pas vraiment de changer simplement pour changer de système, à moins que vous n'ayez une raison impérieuse de le faire.
J'espère que ça t'as aidé!
Vous pouvez lire l'intégralité de l'article ici: https://medium.com/@beingrahul/firebase-cloud-cloud-firestore-v-s-firebase-realtime-database-931d4265d4b
Firebase Realtime database
qui est structuré comme une arborescence JSON mais Cloud Firestore
est stocké dans des documents (qui est un ensemble de paires clé-valeur) et de collection (qui est une collection de documents).
Plus de données de structure
La base de données en temps réel stockait les données dans l'arborescence JSON, mais Cloud FireStore stockait les données dans des documents très similaires à JSON.
Dans Cloud FireStore, les documents peuvent contenir des sous-sections et des objets imbriqués (tels que "phone" dans la figure ci-dessus), qui peuvent tous deux inclure des champs primitifs tels que des chaînes (telles que "name", "email", etc.) ou des objets complexes tels que listes.
Meilleure interrogation
Évolutivité
Cloud Firestore sera en mesure d'évoluer mieux que la base de données Realtime. Il est important de noter que les performances de votre requête sont proportionnelles à la taille de votre jeu de résultats, pas à votre jeu 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
Nous pouvons écouter les données en temps réel dans le Cloud FireStore, comme la base de données en temps réel, mais dans le Cloud FireStore, nous pouvons également extraire les données manuellement (si vous ne voulez que des données à la fois).
Sécurité
Dans la base de données en temps réel, nous devons valider les données séparément à l'aide de la règle de validation, mais dans le Cloud FireStore, la validation des données est automatique.
Ecriture des données
Nous pouvons exécuter plusieurs opérations en un seul lot et les terminer de manière atomique, avec toute combinaison des méthodes set()
, update()
ou delete()
.
Prix
Dans la base de données en temps réel, facture uniquement la bande passante et le stockage, mais à un taux supérieur. Dans Cloud FireStore, elle est principalement imputée aux opérations effectuées dans votre base de données (lecture, écriture, suppression) et, à un taux inférieur, à la bande passante et au stockage.
C'est une version améliorée
La base de données Firebase était suffisante pour les applications de base. Mais ce n'était pas assez puissant pour gérer des exigences complexes. C'est pourquoi Cloud Firestore est introduit. Voici quelques changements majeurs.
Prix
Dans Cloud Firestore, les tarifs ont baissé même s’il est principalement imputé aux opérations effectuées dans votre base de données, ainsi qu’à la bande passante et au stockage. Vous pouvez également définir une limite de dépense quotidienne. Ici sont les détails complets sur la facturation.
Plans futurs de Google
Lorsqu'ils ont découvert les failles de la base de données en temps réel, ils ont créé un autre produit plutôt que d'améliorer l'ancien. Même s'il n'y a pas de détails fiables révélant leur classement actuel dans la base de données en temps réel, il est temps de commencer à penser que cette information risque d'être abandonnée.