Google vient de publier Cloud Firestore, leur nouvelle base de données de documents pour les applications.
J'ai lu la documentation mais je ne vois pas beaucoup de différences entre Firestore et Firebase DB.
Le point principal est que Firestore utilise des documents et des collections qui permettent une utilisation facile 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 de remplacer Firebase DB?
firebase
firebase-realtime-database
google-cloud-platform
google-cloud-firestore
Francisco Durdin Garcia
la source
la source
Réponses:
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!
la source
Vous pouvez lire l'intégralité de l'article ici: https://medium.com/@beingrahul/firebase-cloud-firestore-vs-firebase-realtime-database-931d4265d4b0
Firebase Realtime database
qui est structuré comme une arborescence JSON mais quiCloud Firestore
est stocké des données dans des documents (qui est un ensemble de paires clé-valeur) et des formats 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 le cloud firestore stockait les données dans les documents, ce qui est très similaire à JSON.
Dans Cloud FireStore, les documents peuvent contenir des sous-collections et des objets imbriqués (comme «téléphone» dans la figure ci-dessus), qui peuvent tous deux inclure des champs primitifs comme des chaînes (comme «nom», «e-mail» et etc. dans la figure ci-dessus) ou des objets complexes comme listes.
Mieux interroger
Évolutivité
Cloud Firestore pourra évoluer mieux que la base de données en temps réel. Il est important de noter que les performances de votre requête sont proportionnelles à la taille de votre ensemble de résultats et non à 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
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 récupérer les données manuellement (si vous ne souhaitez enregistrer des données qu'une seule 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 se produit automatiquement.
Écriture des données
Nous pouvons exécuter plusieurs opérations en un seul lot et les compléter atomiquement, avec toute combinaison des
set()
,update()
ou desdelete()
méthodes.Tarification
Dans la base de données en temps réel, ne facture que la bande passante et le stockage, mais à un taux plus élevé. Dans le Cloud FireStore, les frais sont principalement facturés sur les opérations effectuées dans votre base de données (lecture, écriture, suppression) et, à un taux inférieur, sur la bande passante et le stockage.
la source
Raisons de choisir Cloud Firestore plutôt que la base de données en temps réel
C'est une version améliorée
La base de données Firebase était suffisante pour les applications de base. Mais il n'était pas assez puissant pour gérer des exigences complexes. C'est pourquoi Cloud Firestore est introduit. Voici quelques changements majeurs.
Tarification
Dans Cloud Firestore, les tarifs ont baissé même s'il est principalement facturé sur les opérations effectuées dans votre base de données ainsi que sur la bande passante et le stockage. Vous pouvez également définir une limite de dépenses quotidiennes. Voici les détails complets de 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 position actuelle sur la base de données en temps réel, c'est le moment de commencer à penser qu'elle est susceptible d'être abandonnée.
la source
Suggérez également un lien de Google: base de données en temps réel Firebase vs FireStore
Extrait de google docs, un petit résumé ici:
FireBase Real Time DB est basé sur JSON NO SQL DB, destiné aux applications mobiles régionales et utilisé généralement pour stocker et synchroniser les données entre les utilisateurs / appareils en temps réel / latence extrêmement faible.
FireStore est JSON 'comme' NOSQL DB destiné à une persistance de concurrence élevée, globale et facilement évolutive, conçu pour tous les clients (pas seulement les applications mobiles) avec des cas d'utilisation typiques tels que le suivi des actifs, l'analyse en temps réel, la construction de catalogues de produits de vente au détail, l'utilisateur social profil, classements de jeu, applications basées sur le chat, etc.
la source