Temps réel vs Cloud Firestore : quelle base de données Firebase choisir
Publié: 2018-10-12L'histoire remonte sur la base de données Firebase pas trop loin au-delà. Fondée en tant que plate-forme de développement mobile et Web, Firebase a vu le jour en 2011, puis en 2014, elle a été acquise par le géant de la technologie Google et son destin a changé.
Sautant en avance sur l'histoire de l'évolution de Firebase, moins d'un an après son acquisition par Google, il a été fusionné avec Divshot et depuis lors, il s'est développé pour devenir une plate-forme unifiée pour les développeurs mobiles.
Firebase s'intègre désormais à divers autres services Google pour offrir des produits et une échelle plus larges aux développeurs. En fait, les avantages qu'il offre font de Firebase pour les startups un processus tendance.
Alors, qu'est-ce que la base de données Firebase ? Firebase est un BaaS, c'est-à-dire Backend as a Service. En utilisant les produits fournis par Firebase, les développeurs mobiles ne sont pas les seuls à pouvoir créer des applications de haute qualité. Google a également lancé plusieurs nouvelles fonctionnalités pour les utilisateurs Web de Firebase .
Il existe deux produits de Firebase qui permettent de construire toutes les applications que nous venons d'évoquer. Firestore en temps réel et cloud.
Realtime est le produit bien établi de la base de données Firebase de Google et Cloud Firestore, tout en promettant de meilleures technologies, est encore en phase de test bêta.
Selon Google :
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 et à faible latence pour une application mobile qui nécessite des états synchronisés entre les clients en temps réel.
Cloud Firestore est la nouvelle base de données phare de Firebase pour le développement d'applications mobiles . Il améliore 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 mieux que la base de données en temps réel.
Avant d'en venir aux propriétés individuelles de la base de données en temps réel et du cloud Firestore, examinons quels sont les avantages et les inconvénients de l'utilisation de la base de données Firebase pour votre prochain projet :
Avantages de la base de données Firebase :
Si nous examinons la liste des raisons pour lesquelles on devrait utiliser la base de données firebase comme base de données unique pour tout le développement d'applications mobiles et Web , nous verrons pourquoi Firebase db est devenu un si grand succès dans l'industrie du développement d'applications mobiles.
- Migration facile des données - Les développements récents ont donné aux développeurs les outils nécessaires pour migrer facilement les données.
- Aucune connaissance supplémentaire requise - Presque aucune connaissance n'est requise sur devOps ou sysadmin pour fonctionner dans Firebase db.
- Validation de divers types de données - Même si la structure de la base de données Firebase est sans schéma, elle a toujours la capacité de base de valider divers types de données.
- Outil unique - C'est un outil complet et le seul dont vous avez nécessairement besoin pour le backend d'une petite application mobile.
- Plus facile à utiliser - Le niveau de difficulté d'utilisation est un peu supérieur à la moyenne, mais il est plus facile que la plupart des autres systèmes en ce qui concerne l'intégration avec l'analyse et la surveillance des accidents.
- Utilisation gratuite - C'est gratuit dans la phase initiale afin que les développeurs qui l'essayent pour la première fois n'aient pas à se soucier de faire un gros investissement initial
- Bibliothèques de code riches - Toutes les bibliothèques de code des langages de programmation sont similaires et bien entretenues pour les nouveaux arrivants également.
- Structure de données JSON - La structure de données est JSON qui correspond parfaitement au JavaScript de l'interface utilisateur.
- Développement rapide - Obtenir une application créée à partir de zéro est très rapide - authentification, e-mail, gestion des versions, hébergement, surveillance, DevOps, disponibilité.
- Streaming facile - Le fonctionnement en temps réel ou les mises à jour en streaming sont très simples.
Comparons maintenant la base de données Realtime et Cloud Firestore pour mieux comprendre quand utiliser quoi. Cloud Firestore est encore en phase de test bêta et il semble et fonctionne d'une manière plus prometteuse que la base de données en temps réel. Dans cette comparaison, nous verrons comment les deux bases de données diffèrent l'une de l'autre et qui remporte la base de données en temps réel contre le cloud firestore.
Modèle de données
- La base de données en temps réel stocke les données sous la forme d'une grande arborescence JSON, ce qui facilite le stockage de données simples, mais les données complexes ou hiérarchiques sont plus difficiles à organiser à grande échelle.
- Cloud Firestore , quant à lui, stocke les données sous forme de documents organisés en collections. En cela, le stockage de données simples est similaire à JSON et il est stocké dans des documents. Alors que les données complexes ou hiérarchiques ne sont pas plus faciles à organiser à grande échelle avec l'utilisation de sous-collections dans les documents. Et dans l'ensemble, cela nécessite moins de dénormalisation et d'aplatissement des données.
Assistance en temps réel et hors ligne
- La base de données en temps réel fournit une prise en charge hors ligne uniquement pour les clients mobiles Android et iOS.
- Cloud Firestore , d'autre part, fournit également une prise en charge hors ligne pour les clients Android, iOS et Web.
Interroger
- La base de données en temps réel fournit des requêtes approfondies avec des fonctionnalités de tri et de filtrage limitées où les développeurs peuvent trier ou filtrer une propriété dans une seule requête. Et toutes les requêtes sont profondes par défaut, c'est-à-dire qu'elles renvoient toujours le sous-arbre entier.
- Cloud Firestore indexe la requête avec un tri et un filtrage composés où les développeurs peuvent filtrer en chaîne et combiner le filtrage et le tri sur une propriété dans une seule requête. Il est également possible d'écrire des requêtes superficielles pour des sous-collections, c'est-à-dire que les développeurs peuvent interroger dans un document au lieu d'une collection entière ou d'un document entier. Non seulement cela, mais les requêtes sont indexées par défaut, cela signifie que les performances de la requête sont proportionnelles à la taille de l'ensemble de résultats et non à l'ensemble de données.
Transactions
- Dans la base de données en temps réel , il existe des opérations d'écriture et de transaction de base. L'écriture de données fonctionne comme une opération individuelle et les transactions nécessitent un rappel d'achèvement dans les SDK natifs.
- Cloud Firestore permet les opérations d'écriture et de transaction Atomic. Il regroupe les opérations et les complète automatiquement. De plus, les transactions se répètent automatiquement jusqu'à ce qu'elles soient terminées.
Performances et fiabilité
- La base de données en temps réel est un produit mature. Il a la stabilité d'un véritable produit éprouvé à plusieurs reprises. Il a également une latence très faible, c'est donc une bonne option pour la synchronisation d'état fréquente. Cependant, les bases de données sont limitées à la disponibilité zonale dans une seule région.
- Les performances de Cloud Firestore ne peuvent pas encore être mesurées car elles sont encore en phase bêta. Et la stabilité d'un produit bêta n'est pas la même que celle d'un produit entièrement lancé. Mais en termes de fiabilité, Cloud Firestore héberge toutes vos données dans plusieurs centres de données dans différentes régions, garantissant une évolutivité mondiale et une grande fiabilité. En théorie, chaque fois que Cloud Firestore sortira de la version bêta, sa fiabilité sera supérieure à celle de la base de données en temps réel.
Évolutivité
- Dans la base de données en temps réel , la mise à l'échelle nécessite un partitionnement. Pour le dire simplement, passez à environ 100 000 connexions simultanées et 1 000 écritures/seconde dans une seule base de données et au-delà, cela nécessite de partager vos données sur plusieurs bases de données.
- Lorsque Cloud Firestore sortira de la version bêta, la mise à l'échelle sera automatique et les développeurs n'auront pas à répartir leurs données sur plusieurs instances.
Sécurité
- La base de données en temps réel a des règles en cascade qui nécessitent une validation distincte. Les règles de la base de données firebase sont les seules options de sécurité ici et les développeurs doivent valider les données séparément à l'aide de la règle "valider".
- Cloud Firestore offre une sécurité plus simple et plus puissante pour les SDK mobiles, Web et serveur qui utilisent la gestion des identités et des accès (IAM). La validation des données se fait également automatiquement. En outre, les règles peuvent limiter les requêtes, c'est-à-dire que si les résultats d'une requête peuvent contenir des données auxquelles le développeur n'a pas accès, la requête entière échoue.
Tarification
- La base de données en temps réel ne facture que la bande passante et le stockage, mais à un prix plus élevé.
- Cloud Firestore , quant à lui, 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. Il prend également en charge les limites de dépenses quotidiennes pour les projets Google App Engine.
Vous vous demandez toujours comment fonctionne firebase ? Rembobinons un résumé de ce que nous avons connu dans l'article ci-dessus.
Quand utiliser la base de données en temps réel :
- Si vos données sont simples et non complexes ou hiérarchiques
- Si vous devez passer à moins de 100 000 connexions simultanées, 1 000 écritures/seconde dans une seule base de données
- Lorsque vous avez besoin d'une base de données qui facture la bande passante et le stockage globaux et non les opérations individuelles effectuées.
Quand utiliser la base de données Cloud Firestore :
- Si vos données sont complexes ou hiérarchiques
- Si vos données évoluent au-delà de 100 000 connexions simultanées
- Si vous avez besoin d'une limite de dépenses plus précise et d'une base de données qui facture principalement sur 1, PicCollage, Fabulous, Shazam et Skyscanner et nous pouvons tous convenir qu'ils fonctionnent avec succès.
En conclusion, les modèles Firebase db fonctionnent bien pour eux. La base de feu en temps réel fonctionne avec succès depuis des années et l'année dernière avec la sortie de la version bêta de Cloud Firestore, de meilleures choses attendent les développeurs d'applications mobiles et les sociétés de développement d'applications.