Firebase propose deux solutions de base de données cloud accessibles aux clients qui prennent en charge la synchronisation des données en temps réel :
Cloud Firestore est la toute nouvelle base de données de Firebase pour le développement d'applications mobiles. Il s'appuie sur les succès de la base de données en temps réel avec un nouveau modèle de données plus intuitif. Cloud Firestore propose également des requêtes plus riches et plus rapides et évolue plus loin que la base de données en temps réel.
La base de données en temps réel est la base de données originale de Firebase. Il s'agit d'une solution efficace à faible latence pour les applications mobiles qui nécessitent des états synchronisés entre les clients en temps réel.
Quelle base de données Firebase recommande-t-elle ?
Votre choix de solution de base de données dépendra de nombreux facteurs, mais en ce qui concerne certaines fonctionnalités, nous pouvons faire des recommandations sur la base de données qui vous convient.
Les deux solutions offrent :
- SDK axés sur le client, sans serveurs à déployer et à entretenir
- Mises à jour en temps réel
- Niveau gratuit, puis payez pour ce que vous utilisez
Considérations clés
Au-delà des fonctionnalités de base communes aux deux bases de données, réfléchissez à la manière dont l'une ou l'ensemble des considérations répertoriées ci-dessous affectera le succès de vos applications.
Rôle de la base de données | Mon application utilise une base de données pour... Principalement la synchronisation des données, avec des requêtes de base. Si vous n'avez pas besoin d'interrogations, de tris et de transactions avancés, nous vous recommandons Realtime Database . Interrogation, tri et transactions avancés. Si vous avez besoin d'interactions complexes avec vos données, par exemple dans les applications de commerce électronique, nous vous recommandons Cloud Firestore . |
Opérations sur les données | L'utilisation de la base de données de mon application ressemble à... Quelques Go ou moins de données qui changent fréquemment. Si votre application doit envoyer un flux de petites mises à jour, comme dans une application de tableau blanc numérique, nous recommandons la base de données en temps réel . Des centaines de Go à des To de données qui sont lues beaucoup plus souvent qu'elles ne sont modifiées. Pour les ensembles de données très volumineux et lorsque des opérations par lots sont fréquemment nécessaires, nous recommandons Cloud Firestore . |
Modèle de données | Je préfère structurer mes données comme... Un arbre JSON simple. Pour les données non structurées JSON, nous recommandons Realtime Database . Documents organisés en collections. Pour les documents structurés et les collections, nous recommandons Cloud Firestore . |
Disponibilité | Mes besoins en disponibilité sont... Garantie de disponibilité extrêmement élevée de 99,999 %. Si la disponibilité est de la plus haute importance, par exemple dans les applications de commerce électronique, nous recommandons Cloud Firestore . Une garantie d'au moins 99,95 % de disponibilité. Lorsqu'une disponibilité très élevée mais non critique est acceptable, nous recommandons Cloud Firestore ou Realtime Database . |
Requêtes hors ligne sur les données locales | Mon application devra effectuer des requêtes sur des appareils avec une connectivité limitée ou inexistante... Fréquemment. Pour des capacités d'interrogation sophistiquées sur les données locales lorsque l'utilisateur est hors ligne, nous recommandons Cloud Firestore . Rarement ou jamais. Si vous vous attendez à ce que vos utilisateurs soient constamment en ligne, nous vous recommandons Cloud Firestore ou Realtime Database . |
Nombre d'instances de base de données | Dans mes projets individuels, j'ai besoin d'utiliser... De nombreuses bases de données, par exemple une base de données pour chaque client majeur. Puisqu'il vous permet d'ajouter plusieurs bases de données à un seul projet Firebase, nous vous recommandons Realtime Database . Une seule base de données. Si vous avez besoin d'une seule base de données, nous vous recommandons Cloud Firestore ou Realtime Database . |
Quelles sont les autres choses importantes à considérer ?
Après avoir réfléchi aux considérations clés précédentes, vous êtes peut-être prêt à choisir une base de données . Si vous pesez toujours le pour et le contre, cette section couvre d'autres différences entre Cloud Firestore et Realtime Database.
Modèle de données
La base de données en temps réel et Cloud Firestore sont des bases de données NoSQL.
Base de données en temps réel | Cloud Firestore |
---|---|
Stocke les données sous la forme d'une grande arborescence JSON.
En savoir plus sur le modèle de données Realtime Database . | Stocke les données sous forme de collections de documents.
En savoir plus sur le modèle de données Cloud Firestore . |
Assistance en temps réel et hors ligne
Les deux ont des SDK en temps réel pour mobile et prennent en charge le stockage de données local pour les applications prêtes hors ligne.
Base de données en temps réel | Cloud Firestore |
---|---|
Prise en charge hors ligne des clients Apple et Android. | Prise en charge hors ligne des clients Apple, Android et Web. |
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 la connexion du client et fournir des mises à jour chaque fois que l'état de la connexion du client change.
Base de données en temps réel | Cloud Firestore |
---|---|
Présence appuyée. | Non supporté 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. Consultez Créer une présence dans Cloud Firestore . |
Interroger
Récupérez, triez et filtrez les données de l'une ou l'autre des bases de données via des requêtes.
Base de données en temps réel | Cloud Firestore |
---|---|
Requêtes approfondies avec des fonctionnalités de tri et de filtrage limitées.
| Requêtes indexées avec tri et filtrage composés.
|
Ecritures et transactions
Base de données en temps réel | Cloud Firestore |
---|---|
Opérations d'écriture et de transaction de base.
| Opérations avancées d'écriture et de transaction.
|
Fiabilité et performances
Base de données en temps réel | Cloud Firestore |
---|---|
La base de données en temps réel est une solution régionale.
| Cloud Firestore est une solution régionale et multirégionale qui évolue automatiquement.
|
Évolutivité
Base de données en temps réel | Cloud Firestore |
---|---|
La mise à l'échelle nécessite un partitionnement.
| La mise à l'échelle est automatique.
|
Sécurité
Base de données en temps réel | Cloud Firestore |
---|---|
Langage de règles en cascade qui sépare l'autorisation et la validation.
| Règles non en cascade qui combinent autorisation et validation.
|
Tarification
Les deux solutions sont disponibles sur les plans tarifaires Spark et Blaze .
Base de données en temps réel | Cloud Firestore |
---|---|
Frais uniquement pour la bande passante et le stockage , mais à un taux plus élevé. En savoir plus sur les plans tarifaires de la base de données en temps réel . | Facture principalement les opérations effectuées dans votre base de données (lecture, écriture, suppression) et, à un tarif inférieur, 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 que vous ne dépassez pas les coûts avec lesquels vous êtes à l'aise. En savoir plus sur les forfaits Cloud Firestore . |
Utilisation de Cloud Firestore et de la base de données en temps réel
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 ci-dessus 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 ?
J'espère 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.
- Pour Cloud Firestore , consultez Premiers pas avec Cloud Firestore .
- Pour Base de données en temps réel , lisez la rubrique Prise en main de votre plate-forme : Apple , Android , C++ , Unity , Web ou REST .