web-dev-qa-db-fra.com

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

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?

185

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

275
Todd Kerpelman

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. enter image description here

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

  • Dans la base de données temps réel, nous ne pouvons trier ou filtrer une propriété que dans une seule requête, pas à la fois trier et filtrer une propriété alors que dans Cloud FireStore, vous pouvez chaîner des filtres et combiner le filtrage et le tri d'une propriété dans une seule requête.
  • Si vous souhaitez récupérer les données dans l'ordre décroissant, alors Cloud FireStore est très utile pour vous, mais pour la base de données Realtime, aucune fonctionnalité de requête n'est disponible. enter image description here
  • Vous pouvez également chaîner plusieurs méthodes "where" pour créer des requêtes plus spécifiques (AND logique) dans Cloud FireStore. enter image description here

É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(). enter image description here

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.

48
0xAliHn

Raisons de choisir Cloud Firestore sur Realtime Database

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.

  • La structure de fichier de base est améliorée.
  • Support hors ligne pour le 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é.

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.



6
Anees