367 votes

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

Google vient de lancer Cloud Firestore, sa nouvelle base de données documentaire 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, ou leurs usages, ou si Firestore est juste venu remplacer Firebase DB ?

5 votes

Les lectures sont plus rapides sur Firestore, les écritures sont plus rapides sur Firebase Real Time Database.

516voto

Todd Kerpelman Points 7139

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.

  1. J'ai déjà évoqué le fait que "les applications qui font beaucoup de mises à jour fréquentes seront probablement moins chères",

  2. Il existe depuis longtemps et a été testé par des milliers d'applications,

  3. 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 !

3 votes

Merci beaucoup Todd ! J'ai vu le message d'annonce mais pas celui-ci ! Je suis totalement amoureux de Firestore, malheureusement maintenant je vais devoir réécrire tout mon RxJava enveloppé pour cela xD.

1 votes

Quelle est la place de Google Cloud Datastore ? Naïvement, il semble qu'il y ait beaucoup de chevauchement avec Cloud Firestore. @ToddKerpelman

4 votes

Il a beaucoup de points communs avec le Cloud Datastore. La plus grande différence est l'intégration avec Firebase, ce qui vous permet d'avoir accès aux SDK mobiles et Web, ainsi qu'à un mode hors ligne natif, et aux fonctions 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, comme l'exécution de votre propre site Web sur App Engine ou via Compute/Container Engine.

89voto

0xalihn Points 5358

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

Firebase Realtime database est structuré comme un arbre JSON alors que Cloud Firestore stocke les données dans des documents (un document est un ensemble de paires clé-valeur) et des collections (collections de documents).

Plus de données de structure

La base de données en temps réel stocke les données dans une arborescence JSON, tandis que Cloud firestore stocke les données dans des documents, qui sont très similaires à JSON. enter image description here

Dans Cloud FireStore, les documents peuvent contenir des sous-collections et des objets imbriqués (comme "phone" dans la figure ci-dessus), qui peuvent tous deux inclure des champs primitifs comme des chaînes (comme "name", "email" dans la figure ci-dessus) ou des objets complexes comme des listes.

Amélioration des requêtes

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

Évolutivité

Cloud Firestore sera capable d'évoluer mieux que la base de données en temps réel. Il est important de noter que les performances de vos requêtes sont proportionnelles à 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

Nous pouvons écouter les données en temps réel dans le Cloud FireStore comme dans une 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 souhaitez obtenir des données une seule fois).

Sécurité

Dans la base de données en temps réel, nous devons valider les données séparément en utilisant la règle de validation, mais dans le Cloud FireStore, la validation des données se fait automatiquement.

Écriture des données

Nous pouvons exécuter plusieurs opérations en tant que lot unique et les achever de manière atomique, avec n'importe quelle combinaison des éléments suivants set() , update() o delete() méthodes. enter image description here

Fixation des prix

Dans la base de données en temps réel, ne facture que la bande passante et le stockage, mais à un tarif plus élevé. Dans le Cloud FireStore, facture principalement les opérations effectuées dans votre base de données (lecture, écriture, suppression) et, à un taux inférieur, la bande passante et le stockage.

19 votes

Ce serait bien de mettre un lien vers l'article original : medium.com/@beingrahul/

3 votes

Pouvez-vous expliquer plus en détail ce que signifie "la validation des données se fait automatiquement" ?

25voto

Anees Points 4806

Raisons de choisir Cloud Firestore plutôt que Realtime Database

Il s'agit d'une version améliorée

La base de données Firebase était suffisante pour les applications de base. Mais elle n'était pas assez puissante pour gérer des exigences complexes. C'est pourquoi Cloud Firestore a été introduit. Voici quelques changements majeurs.

  • La structure de base des fichiers est améliorée.
  • Support hors ligne pour le client web.
  • Prise en charge de 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.
  • Il sera plus sûr.

Fixation des prix

Dans Cloud Firestore, les tarifs ont baissé même s'il facture principalement les opérations effectuées dans votre base de données ainsi que la bande passante et le stockage. Vous pouvez également fixer une limite de dépenses quotidienne. Ici est le détail complet 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 Real-time Database, il est temps de commencer à penser qu'il est probable qu'il soit abandonné.

0 votes

"c'est le moment de commencer à penser qu'il sera probablement abandonné." peut-on vraiment dire cela ? Il semble plus idéal pour les cas d'utilisation simples et les problèmes de prix, à tout le moins.

4voto

TechFree Points 727

Suggérer le lien de google aussi : 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 une base de données NON-SQL basée sur JSON, destinée aux applications mobiles, régionales, et utilisée typiquement pour stocker et synchroniser des données entre utilisateurs/appareils en temps réel / latence extrêmement faible.

FireStore est une base de données NOSQL de type JSON conçue pour une persistance à haute concurrence, globale et facilement auto-échelonnable, conçue 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 création de catalogues de produits de détail, le profil social des utilisateurs, les tableaux de classement des jeux, les applications basées sur le chat, etc.

2voto

ezaspi Points 322

Bien que la plupart des réponses soient fondamentalement correctes, la documentation de Firebase indique qu'il ne s'agit pas simplement de dire que Firestore est la nouvelle voie. Cela dépend de ce que vous voulez faire avec les bases de données ! Firebase vous pose un certain nombre de questions dans le lien ci-dessous, et réfléchissez bien, car il n'est pas si facile d'écrire une application autour de l'une et de découvrir ensuite que vous devez utiliser l'autre !

Par exemple : Le nombre d'instances de la base de données : Avez-vous besoin de plusieurs bases de données, 1 pour chaque client important, ou juste 1 grande base de données ? Dans le premier cas, utilisez Firebase Realtime Database, dans le second, Firestore.

rtdb-vs-firestore

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X