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

Firebase propose deux bases de données de documents dans le cloud accessibles par le client. Mer recommandent aux nouveaux clients de commencer par Cloud Firestore:

  • Cloud Firestore est la base de données de documents compatible avec JSON de niveau professionnel recommandée, approuvée par plus de 250 000 développeurs. Elle est adaptée aux des applications avec des modèles de données enrichis qui nécessitent des capacités de requête, d'évolutivité haute disponibilité. Il offre également la synchronisation client à faible latence et l'accès aux données.

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

Quels sont les autres points 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 hésitez encore à évaluer les avantages et les inconvénients, 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 semblables au format JSON.
  • Les données hiérarchiques complexes sont plus faciles à organiser à grande échelle à l'aide de sous-collections dans des documents.
  • Nécessite moins de dénormalisation et d'aplatissement des données.

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

Stocke les données sous la forme d'une grande arborescence JSON.
  • Il est très facile de stocker des données simples.
  • Les données complexes et hiérarchisées sont plus difficiles à organiser à grande échelle.

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

Assistance en temps réel et hors connexion

Tous deux sont dotés de SDK en temps réel axés sur les mobiles et sont tous deux compatibles avec le stockage local de données pour disponibles hors connexion.

Cloud Firestore Préféré Realtime Database
Compatibilité hors connexion avec les clients Apple, Android et Web. Compatibilité hors connexion avec les clients Apple et Android.

Présence

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

Cloud Firestore Préféré Realtime Database
Non disponible en mode natif. Vous pouvez exploiter les capacités de Realtime Database Prise en charge de la présence en synchronisant Cloud Firestore et Realtime Database à l'aide de Cloud Functions Consultez la section Créer présence dans le pays suivant : Cloud Firestore. Présence possible.

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
Les requêtes indexées comportant des le tri et le filtrage.
  • Vous pouvez enchaîner des filtres et combiner le filtrage et le tri sur une propriété dans pour une même requête.
  • Les requêtes sont superficielles : elles ne renvoient que les documents d'une collection ou d'un groupe de collections spécifique, 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 votre ensemble de résultats, et non à votre ensemble de données.
Les requêtes approfondies avec les fonctionnalités de tri et de filtrage.
  • Les requêtes peuvent effectuer un tri ou un filtre en fonction d'une propriété, mais pas des deux à la fois.
  • Les requêtes sont profondes par défaut : elles renvoient toujours l'ensemble du sous-arbre.
  • Les requêtes peuvent accéder aux données avec n'importe quel niveau de précision, jusqu'aux valeurs individuelles de 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égrade à mesure que l'ensemble de données augmente.

Écritures et transactions

Cloud Firestore Préféré Realtime Database
Opérations avancées d'écriture et de transaction.
  • Écrire des opérations de données via des opérations d'ensemble et de mise à jour, ainsi que des transformations avancées telles que les opérateurs numériques et les tableaux.
  • 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 performances

Cloud Firestore Préféré 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 généralement inférieurs à 30 ms.
  • héberge vos données dans plusieurs centres de données situés 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.
Pour en savoir plus sur les caractéristiques de fiabilité et de performances 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 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 d'état fréquente.
Pour en savoir plus sur les caractéristiques de fiabilité et de performances de Realtime Database, consultez le Contrat de niveau de service.

Temps d'activité

Cloud Firestore Préféré Realtime Database
Disponibilité extrêmement élevée.
  • Performances de temps d'activité types de 99,999%.
  • Si la disponibilité est primordiale (dans les applications d'e-commerce, par exemple), utiliser Cloud Firestore.
Temps d'activité élevé.
  • Performances de temps d'activité types de 99,95%.

Évolutivité

Cloud Firestore Préféré Realtime Database
Le scaling est automatique.
  • Scaling entièrement automatique Les limites de scaling sont d'environ un million de connexions simultanées et 10 000 écritures/seconde. Nous prévoyons d'augmenter ces limites à l'avenir.
  • Limite les taux d'écriture sur des documents ou des index individuels.
Le scaling nécessite le sharding.
  • Possibilité d'effectuer un scaling à environ 200 000 connexions simultanées et 1 000 écritures/seconde dans dans une seule base de données. Pour évoluer au-delà, vous devez segmenter vos données 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é Realtime Database
Règles non en cascade qui combinent autorisation et validation.
  • Les lectures et les écritures à partir des SDK mobiles sont sécurisées 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 appliquées en cascade que 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 auquel 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 avec les forfaits Spark et Blaze.

Cloud Firestore Préféré Realtime Database
Les frais sont principalement facturés en fonction des opérations effectuées dans votre base de données (lecture, écriture, suppression) et, à un tarif inférieur, de la bande passante et de l'espace de stockage.

Cloud Firestore prend en charge tous les jours plafonds budgétaires pour App Engine projets, afin d'éviter de dépasser les coûts qui vous convient.

En savoir plus sur les forfaits Cloud Firestore

Facturé uniquement pour la bande passante et le stockage, mais à un tarif plus élevé taux de conversion.

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. NoSQL les bases de données peuvent stocker les mêmes types de données et les bibliothèques clientes de la même manière. Gardez à l'esprit les différences décrites précédemment si vous décidez pour 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.