Quelle est la différence entre Cloud Firestore et la base de données en temps réel Firebase?

252

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?

Francisco Durdin Garcia
la source
1
Les lectures sont plus rapides sur Firestore, les écritures sont plus rapides sur Firebase Real Time Database
DragonFire

Réponses:

380

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 onceappels 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!

Todd Kerpelman
la source
2
Merci beaucoup Todd! J'ai vu le message d'annonce mais pas celui-ci! Je suis totalement amoureux de Firestore, malheureusement, je devrai réécrire tout mon RxJava emballé pour ce xD.
Francisco Durdin Garcia
1
Comment Google Cloud Datastore s'intègre-t-il? Naïvement, il semble avoir beaucoup de chevauchements avec Cloud Firestore. @ToddKerpelman
Jon G
2
Il a beaucoup en commun avec Cloud Datastore. La plus grande différence est l'intégration avec Firebase, vous avez donc accès aux SDK mobiles et Web ainsi qu'à un mode natif hors ligne, ainsi qu'aux fonctionnalités de synchronisation en temps réel. Cloud Datastore est idéal pour le développement côté serveur à grande échelle où vous gérez votre propre connexion à votre application, par exemple en exécutant votre propre site Web sur App Engine ou via Compute / Container Engine.
Todd Kerpelman
2
Que signifie vraiment «forte cohérence»? Le théorème du CAP déclare que vous ne pouvez pas "être assuré que vous obtenez la dernière version de vos données" dans un environnement distribué et disponible. Cohérence, disponibilité, tolérance de partition => choix 2.
AjahnCharles
1
@ToddKerpelman Toute chance que vous fassiez une comparaison Cloud Firestore / Cloud Datastore. Les deux semblent terriblement similaires.
TheAddonDepot
63

Vous pouvez lire l'intégralité de l'article ici: https://medium.com/@beingrahul/firebase-cloud-firestore-vs-firebase-realtime-database-931d4265d4b0

Firebase Realtime databasequi est structuré comme une arborescence JSON mais qui Cloud Firestoreest 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. entrez la description de l'image ici

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

  • Dans la base de données en temps réel, nous pouvons uniquement trier ou filtrer sur une propriété dans une seule requête, pas à la fois trier et filtrer sur une propriété tandis que dans Cloud FireStore, vous pouvez chaîner des filtres et combiner le filtrage et le tri sur une propriété dans une seule requête.
  • Si vous souhaitez récupérer des données dans l'ordre décroissant, Cloud fireStore est très utile pour vous, mais pour la base de données en temps réel, aucune fonction de requête n'est disponible. entrez la description de l'image ici
  • Vous pouvez également chaîner plusieurs méthodes «où» pour créer des requêtes plus spécifiques (ET logique) dans Cloud FireStore. entrez la description de l'image ici

É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 des delete()méthodes. entrez la description de l'image ici

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.

0xAliHn
la source
12
Ce serait bien de lier l'article original: medium.com/@beingrahul/…
Salem Ouerdani
1
Pouvez-vous expliquer plus en détail ce que signifie «validation automatique des données»?
SoEzPz
12

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.

  • La structure de base des fichiers est améliorée.
  • Prise en charge hors ligne du client Web.
  • Prend en charge les requêtes plus avancées.
  • Les opérations d'écriture et de transaction sont atomiques.
  • Amélioration de la fiabilité et des performances
  • La mise à l'échelle sera automatique.
  • Sera plus sécurisé.

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.



Bertram Gilfoyle
la source
2

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.

TechFree
la source