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

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

  • Cloud Firestore est la base de données de documents compatible avec JSON recommandée pour les entreprises , utilisée par plus de 600 000 développeurs. Elle convient aux applications avec des modèles de données riches nécessitant des requêtes, une évolutivité et une haute disponibilité. Elle 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 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 serez peut-être prêt à choisir une base de données. Si vous hésitez encore entre les avantages et les inconvénients, 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 [ PRÉFÉRÉ ] 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 similaires à 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 Cloud Firestore modèle de données.

Stocke les données sous forme d'un grand arbre 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 Realtime Database modèle de données.

Assistance en temps réel et hors connexion

Les deux solutions disposent de SDK en temps réel axés sur le mobile et sont compatibles avec le stockage local des données pour les applications prêtes à fonctionner hors connexion.

Cloud Firestore [ PRÉFÉRÉ ] Realtime Database
Assistance hors connexion pour les clients Apple, Android et Web. Assistance hors connexion pour les clients Apple et Android.

Présence

Il peut être utile de savoir quand un client est en ligne ou hors connexion. 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É ] Realtime Database
Non compatible de manière native. Vous pouvez vous appuyer sur la compatibilité de Realtime Database's 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 [ PRÉFÉRÉ ] Realtime Database
Requêtes indexées avec tri et filtrage composés.
  • Vous pouvez enchaî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 ne renvoient que les documents d'une collection ou d'un groupe de collections particulier, et non les 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 l'ensemble de résultats, et non à 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 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 à n'importe quel niveau de granularité, jusqu'aux valeurs des nœuds feuilles individuels dans l'arbre 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 [ PRÉFÉRÉ ] 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.

Fiabilité et performance

Cloud Firestore [ PRÉFÉRÉ ] Realtime Database
Cloud Firestore est une solution régionale et multirégionale qui évolue automatiquement.
  • 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 situés dans des régions distinctes, ce qui garantit une évolutivité mondiale et une fiabilité élevée.
  • 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é Cloud Firestore dans le contrat 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 dans une région.
  • Latence extrêmement faible, avec des temps de réponse typiques ne dépassant pas 10 ms. 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 dans le contrat de niveau de service.

Temps d'activité

Cloud Firestore [ PRÉFÉRÉ ] Realtime Database
Performances de temps d'activité extrêmement élevées.
  • Performances de temps d'activité typiques de 99,999 %.
  • Si la disponibilité est d'une importance capitale, par exemple dans les applications d'e-commerce, utilisez Cloud Firestore.
Performances de temps d'activité élevées.
  • Performances de temps d'activité typiques de 99,95 %.

Évolutivité

Cloud Firestore [ PRÉFÉRÉ ] Realtime Database
Le scaling est automatique.
  • Scaling entièrement automatique. Aucune limite concernant les connexions simultanées ni le taux global d'écritures par seconde dans la base de données.
  • Limites concernant les taux d'écriture dans des documents ou des index individuels.
Le scaling nécessite le partitionnement.
  • Scaling 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 partitionner vos données sur plusieurs bases de données.
  • Aucune limite locale concernant les taux d'écriture dans des éléments de données individuels.

Sécurité

Cloud Firestore [ PRÉFÉRÉ ] Realtime Database
Règles non en cascade qui combinent autorisation et validation.
  • Lectures et écritures à partir de SDK mobiles sécurisées par Cloud Firestore Security Rules.
  • Lectures et écritures à partir de SDK serveur sécurisées par Identity and Access Management (IAM).
  • Les règles ne sont pas en cascade, sauf si vous utilisez un caractère générique.
  • Les règles peuvent contraindre 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'intégralité 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 [ PRÉFÉRÉ ] Realtime Database
Facturation principalement basée 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 est compatible avec les budgets et les alertes mensuels pour éviter de dépasser le montant souhaité.

En savoir plus sur les Cloud Firestore forfaits.

Facturation uniquement basée sur 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 découvrir comment ajouter une base de données à vos projets Firebase.