Choisissez une base de données : Cloud Firestore ou Realtime Database

Firebase propose deux bases de données de documents basées sur le cloud et accessibles au client. Nous recommandons aux nouveaux clients de commencer avec Cloud Firestore :

  • Cloud Firestore est la base de données de documents compatible JSON de niveau entreprise recommandée , approuvée par plus de 250 000 développeurs. Il convient aux applications dotées de modèles de données riches nécessitant des requêtes, une évolutivité et une haute disponibilité. Il offre également une synchronisation client à faible latence et un accès aux données hors ligne.

  • Realtime Database est la base de données Firebase JSON classique. Il convient aux applications avec des modèles de données simples nécessitant des recherches simples et une synchronisation à faible latence avec une évolutivité limitée.

Quels sont les autres éléments importants à prendre en compte ?

Après avoir réfléchi aux considérations clés précédentes, vous pourriez être prêt à choisir une base de données . Si vous pesez encore les avantages et les inconvénients, cette section couvre d'autres différences entre Cloud Firestore et Realtime Database.

Modèle de données

Realtime Database et Cloud Firestore sont des bases de données NoSQL.

Cloud Firestore préféré Base de données en temps réel
Stocke les données sous forme de collections de documents.
  • Les données simples sont faciles à stocker dans des documents très similaires à JSON.
  • Les données complexes et hiérarchiques sont plus faciles à organiser à grande échelle, en utilisant des sous-collections au sein des documents.
  • Nécessite moins de dénormalisation et d’aplatissement des données.

En savoir plus sur le modèle de données Cloud Firestore .

Stocke les données sous la forme d'une grande arborescence JSON.
  • Les données simples sont très faciles à stocker.
  • Les données complexes et hiérarchiques sont plus difficiles à organiser à grande échelle.

En savoir plus sur le modèle de données Realtime Database .

Assistance en temps réel et hors ligne

Les deux disposent de SDK en temps réel axés sur les mobiles et prennent tous deux en charge le stockage de données local pour les applications prêtes à être utilisées hors ligne.

Cloud Firestore préféré Base de données en temps réel
Prise en charge hors ligne pour les clients Apple, Android et Web. Prise en charge hors ligne pour les clients Apple et Android.

Présence

Il peut être utile de savoir quand un client est en ligne ou hors ligne. Firebase Realtime Database peut enregistrer l'état de connexion du client et fournir des mises à jour chaque fois que l'état de connexion du client change.

Cloud Firestore préféré Base de données en temps réel
Non pris en charge nativement. Vous pouvez tirer parti de la prise en charge de la présence par Realtime Database en synchronisant Cloud Firestore et Realtime Database à l'aide de Cloud Functions. Voir Créer une présence dans Cloud Firestore . Présence prise en charge.

Interrogation

Récupérez, triez et filtrez les données de l'une ou l'autre base de données via des requêtes.

Cloud Firestore préféré Base de données en temps réel
Requêtes indexées avec tri et filtrage composés.
  • Vous pouvez chaîner des filtres et combiner le filtrage et le tri sur une propriété dans une seule requête.
  • Les requêtes sont superficielles : elles renvoient uniquement les documents d'une collection ou d'un groupe de collections particulier et ne renvoient pas de données de sous-collection.
  • Les requêtes doivent toujours renvoyer des documents entiers.
  • Les requêtes sont indexées par défaut : les performances des requêtes sont proportionnelles à la taille de votre jeu de résultats, et non à votre ensemble de données.
Requêtes approfondies avec des fonctionnalités de tri et de filtrage limitées.
  • Les requêtes peuvent trier ou filtrer sur une propriété, mais pas les deux.
  • Les requêtes sont approfondies par défaut : elles renvoient toujours l'intégralité du sous-arbre.
  • Les requêtes peuvent accéder aux données avec n'importe quelle granularité, jusqu'aux valeurs individuelles des nœuds feuilles dans l'arborescence JSON.
  • Les requêtes ne nécessitent pas d'index ; cependant, les performances de certaines requêtes se dégradent à mesure que votre ensemble de données grandit.

Écritures et transactions

Cloud Firestore préféré Base de données en temps réel
Opérations avancées d’écriture et de transaction.
  • Écrivez des opérations de données via des opérations de définition et de mise à jour ainsi que des transformations avancées telles que des opérateurs de tableau et numériques.
  • Les transactions peuvent lire et écrire atomiquement des données à partir de n'importe quelle partie de la base de données.
Opérations d’écriture et de transaction de base.

Fiabilité et performances

Cloud Firestore préféré Base de données en temps réel
Cloud Firestore est une solution régionale et multirégionale qui évolue automatiquement.
  • Une solution à faible latence, avec des temps de réponse typiques ne dépassant pas 30 ms.
  • Héberge vos données dans plusieurs centres de données dans des régions distinctes, garantissant une évolutivité mondiale et une grande fiabilité.
  • Disponible dans des configurations régionales ou multirégionales dans le monde entier.
En savoir plus sur les caractéristiques de performances et de fiabilité de Cloud Firestore dans l' accord de niveau de service .
Realtime Database est une solution régionale.
  • Disponible dans des configurations régionales. Les bases de données sont limitées à la disponibilité zonale au sein d’une région.
  • Latence extrêmement faible, avec des temps de réponse typiques ne dépassant pas 10 ms. Une option idéale pour une synchronisation fréquente de l’état.
Pour en savoir plus sur les performances et les caractéristiques de fiabilité de la base de données en temps réel, consultez l'accord de niveau de service .

Temps de disponibilité

Cloud Firestore préféré Base de données en temps réel
Performances de disponibilité extrêmement élevées.
  • Performance de disponibilité typique de 99,999 %.
  • Si la disponibilité est de la plus haute importance, par exemple dans les applications de commerce électronique, utilisez Cloud Firestore.
Performances de disponibilité élevées.
  • Performance de disponibilité typique de 99,95 %.

Évolutivité

Cloud Firestore préféré Base de données en temps réel
La mise à l'échelle est automatique.
  • Échelle entièrement automatique. Les limites de mise à l'échelle sont d'environ 1 million de connexions simultanées et 10 000 écritures/seconde. Nous prévoyons d'augmenter ces limites à l'avenir.
  • Possède des limites sur les taux d'écriture sur des documents ou index individuels.
La mise à l’échelle nécessite un partitionnement.
  • Adaptez-vous à environ 200 000 connexions simultanées et 1 000 écritures/seconde dans une seule base de données. Pour aller au-delà, vous devez partager vos données sur plusieurs bases de données.
  • Aucune limite locale sur les taux d'écriture sur des éléments de données individuels.

Sécurité

Cloud Firestore préféré Base de données en temps réel
Règles non en cascade qui combinent autorisation et validation.
  • Lit et écrit à partir de SDK mobiles sécurisés par les règles de sécurité Cloud Firestore .
  • Lit et écrit à partir de SDK de serveur sécurisés par Identity and Access Management (IAM) .
  • Les règles ne sont pas appliquées en cascade, sauf si vous utilisez un caractère générique.
  • Les règles peuvent limiter les requêtes : si les résultats d'une requête contiennent des données auxquelles l'utilisateur n'a pas accès, la requête entière échoue.
Langage de règles en cascade qui sépare l'autorisation et la validation.

Tarifs

Les deux solutions sont disponibles sur les plans tarifaires Spark et Blaze .

Cloud Firestore préféré Base de données en temps réel
Facture principalement sur les opérations effectuées dans votre base de données (lecture, écriture, suppression) et, à un tarif inférieur, sur la bande passante et le stockage.

Cloud Firestore prend en charge les limites de dépenses quotidiennes pour les projets App Engine, afin de vous assurer de ne pas dépasser les coûts avec lesquels vous êtes à l'aise.

En savoir plus sur les plans tarifaires Cloud Firestore .

Frais uniquement pour la bande passante et le stockage , mais à un tarif plus élevé.

En savoir plus sur les plans tarifaires de Realtime Database .

Utiliser Cloud Firestore et la base de données en temps réel

Vous pouvez utiliser les deux bases de données dans la même application ou projet Firebase. Les deux bases de données NoSQL peuvent stocker les mêmes types de données et les bibliothèques clientes fonctionnent de la même manière. Gardez à l'esprit les différences décrites précédemment si vous décidez d' utiliser les deux bases de données dans votre application .

Apprenez-en davantage sur les fonctionnalités disponibles dans Realtime Database et Cloud Firestore .

Prêt à choisir une base de données ?

J'espère que cette comparaison vous a aidé à choisir une solution de base de données Firebase. Vous pouvez désormais apprendre à ajouter une base de données à vos projets Firebase.