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

Firebase propose deux bases de données de documents dans le cloud et accessibles aux clients. Nous recommandons aux nouveaux clients de commencer par Cloud Firestore :

  • Cloud Firestore est la base de données de documents compatible JSON de niveau entreprise recommandée, à laquelle plus de 600 000 développeurs font confiance. Il convient aux applications dotées de modèles de données enrichis nécessitant des fonctionnalités d'interrogation, d'évolutivité et de haute disponibilité. Il offre également une synchronisation client à faible latence et un accès aux données hors connexion.

  • Realtime Database est la base de données JSON Firebase classique. Elle convient aux applications dotées de 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 points importants à prendre en compte ?

Après avoir réfléchi aux points clés précédents, vous êtes peut-être prêt à choisir une base de données. Si vous hésitez encore, cette section présente 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 [ PREFERRED ] Realtime Database
Stocke les données sous forme de collections de documents.
  • Les données simples sont faciles à stocker dans des documents, qui sont très semblables au format JSON.
  • Les données hiérarchiques complexes sont plus faciles à organiser à grande échelle, à l'aide de sous-collections dans les 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 hiérarchiques complexes sont plus difficiles à organiser à grande échelle.

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

Compatibilité en temps réel et hors connexion

Tous deux disposent de SDK en temps réel axés sur le mobile et prennent en charge le stockage de données local pour les applications compatibles avec le mode hors connexion.

Cloud Firestore [ PREFERRED ] Realtime Database
Fonctionnement hors connexion pour les clients Apple, Android et Web Fonctionnement hors connexion des clients Apple et Android

Présence

Il peut être utile de savoir quand un client est en ligne ou hors connexion. Realtime Database Firebase 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 [ PREFERRED ] Realtime Database
Non compatible de manière native. Vous pouvez vous appuyer sur la compatibilité de Realtime Database avec la présence en synchronisant Cloud Firestore et Realtime Database à l'aide de Cloud Functions. Consultez Créer une présence dans Cloud Firestore. Présence compatible.

Requête

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

Cloud Firestore [ PREFERRED ] Realtime Database
Requêtes indexées avec tri et filtrage composés.
  • Vous pouvez enchaîner les filtres et combiner le filtrage et le tri sur une propriété dans une seule requête.
  • Les requêtes sont superficielles : elles ne renvoient que les documents d'une collection ou d'un groupe de collections particulier, et ne renvoient pas les données des sous-collections.
  • 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 l'ensemble de résultats, et non à celle de l'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 profondes par défaut : elles renvoient toujours l'intégralité de la sous-arborescence.
  • Les requêtes peuvent accéder aux données à n'importe quel niveau de précision, jusqu'aux valeurs de nœud feuille individuelles de l'arborescence JSON.
  • Les requêtes ne nécessitent pas d'index. Toutefois, les performances de certaines requêtes se dégradent à mesure que votre ensemble de données augmente.

Écritures et transactions

Cloud Firestore [ PREFERRED ] Realtime Database
Opérations d'écriture et de transaction avancées
  • Opérations d'écriture 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 des données de manière atomique à partir de n'importe quelle partie de la base de données.
Opérations d'écriture et de transaction de base
  • Écrire des données via des opérations de définition et de mise à jour.
  • Les transactions sont atomiques sur une sous-arborescence de données spécifique.

Fiabilité et performances

Cloud Firestore [ PREFERRED ] Realtime Database
Cloud Firestore est une solution régionale et multirégionale qui évolue automatiquement.
  • Une solution à faible latence, avec des temps de réponse types ne dépassant pas 30 ms.
  • Héberge vos données dans plusieurs centres de données situés dans des régions distinctes, ce qui garantit une évolutivité mondiale et une grande fiabilité.
  • Disponible dans des configurations régionales ou multirégionales dans le monde entier.
Pour en savoir plus sur les caractéristiques de performances et de fiabilité de Cloud Firestore, consultez le Contrat de niveau de service.
Realtime Database est une solution régionale.
  • Disponible dans les 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 généralement inférieurs à 10 ms. Une option idéale pour la synchronisation fréquente des états.
Pour en savoir plus sur les caractéristiques de performances et de fiabilité de Realtime Database, consultez le Contrat de niveau de service.

Temps d'activité

Cloud Firestore [ PREFERRED ] Realtime Database
Temps d'activité extrêmement élevé
  • Temps d'activité habituel de 99,999%.
  • Si la disponibilité est de la plus haute importance, par exemple dans les applications d'e-commerce, utilisez Cloud Firestore.
Temps d'activité élevé
  • Temps d'activité habituel de 99,95%.

Évolutivité

Cloud Firestore [ PREFERRED ] Realtime Database
Le scaling est automatique.
  • évolue de manière entièrement automatique ; Aucune limite sur les connexions simultanées ou le taux global d'écritures dans la base de données par seconde.
  • Il existe des limites sur les taux d'écriture dans des documents ou des index individuels.
Le scaling nécessite le partitionnement.
  • Évoluez jusqu'à environ 200 000 connexions simultanées et 1 000 écritures par seconde dans une seule base de données. Pour aller au-delà, vous devez segmenter vos données sur plusieurs bases de données.
  • Aucune limite locale sur les taux d'écriture pour des données individuelles.

Sécurité

Cloud Firestore [ PREFERRED ] Realtime Database
Règles non en cascade qui combinent l'autorisation et la validation
  • Lit et écrit à partir de SDK mobiles sécurisés par Cloud Firestore Security Rules.
  • Lectures et écritures à partir des 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 peuvent contenir des données auxquelles l'utilisateur n'a pas accès, l'ensemble de la requête échoue.
Langage de règles en cascade qui sépare l'autorisation et la validation.

Tarifs

Les deux solutions sont disponibles avec les forfaits Spark et Blaze.

Cloud Firestore [ PREFERRED ] Realtime Database
La facturation est principalement basée 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 l'espace de stockage.

Cloud Firestore accepte les budgets et alertes mensuels pour vous éviter de dépenser plus que ce que vous souhaitez.

En savoir plus sur les forfaits Cloud Firestore

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

En savoir plus sur les forfaits Realtime Database

Utiliser Cloud Firestore et Realtime Database

Vous pouvez utiliser les deux bases de données dans la même application ou le même 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 manière similaire. 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.

En savoir plus sur les fonctionnalités disponibles dans Realtime Database et Cloud Firestore

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

Nous espérons que cette comparaison vous a aidé à choisir une solution de base de données Firebase. Vous pouvez maintenant apprendre à ajouter une base de données à vos projets Firebase.