Google Cloud Datastore vs Firebase [fermé]

96

Google propose deux services de stockage de données dans le cloud, Google Cloud Datastore et Firebase (après son acquisition). Bien que des scénarios d'utilisation typiques soient fournis pour permettre à un développeur de faire une sélection entre divers services fournis par la plate-forme cloud Google, il n'est pas fait mention de la manière dont Firebase s'intègre dans l'image dans son développement actuel / futur.

Quelqu'un peut-il avoir un aperçu de la question et fournir des cas d'utilisation typiques pour Google Cloud Datastore vs Firebase?

Chebyr
la source
2
Nous avons également plus d'informations ici: cloud.google.com/storage-options
Dan McGrath
Firebase n'est pas un service de stockage de données en soi, car il comprend une suite de produits, notamment Cloud Firestore et Realtime Database pour la base de données et Cloud Storage pour les fichiers.
Andy Fusniak
@DanMcGrath Datastore n'apparaît nulle part sur le lien que vous avez partagé. Ou est-ce que je manque quelque chose?
Ronnie Royston
@Ron, depuis la publication de cette publication, la version mise à niveau de Datastore rebaptisée Cloud Firestore est GA, nous n'utilisons donc que le nouveau nom.
Dan McGrath
@DanMcGrath à droite. ... l'url cloud.google.com/datastore annonce toujours le système obsolète, donc je n'étais pas sûr de ce que c'était. Merci.
Ronnie Royston

Réponses:

61

Les deux produits ont leurs forces et leurs faiblesses. Voici quelques raisons d'utiliser l'un ou l'autre:

Utilisez Firebase si vous le souhaitez:

  • Une base de données sans votre propre backend : les SDK Firebase vous permettent d'écrire des applications mobiles et Web sans exécuter votre propre backend. Vous pouvez lire et écrire dans la base de données Firebase directement à partir de votre application, aucun code serveur n'est requis. Le modèle de sécurité de la base de données permet un contrôle d'accès précis sans serveur basé sur vos utilisateurs.
  • Données en temps réel : Firebase vous permet d'écouter les modifications apportées à vos données, ce qui facilite l'écriture de certains types d'applications. Un bon exemple est l' éditeur de texte collaboratif .
  • Un modèle de données simple : la base de données Firebase stocke JSON. Si vous connaissez JSON, vous connaissez le modèle de données Firebase.
  • Pour bénéficier d'autres fonctionnalités de Firebase : Par exemple, Firebase fournit une gestion et une authentification des utilisateurs qui fonctionnent parfaitement avec la base de données.

Utilisez Datastore si vous souhaitez:

jonnydee
la source
1
Il pense que l'expression "Une base de données sans votre propre back-end" est applicable aux deux services. Datastore fait partie de Google Cloud, vous ne gérez pas vos propres serveurs. En ce qui concerne la logique back-end, la majorité des bibliothèques clientes de Datastore sont basées sur un serveur, cependant, il est possible d'utiliser ses API REST pour les applications mobiles et Web. Vous pouvez même aller jusqu'à exécuter la bibliothèque cliente Node.js via browserify, en la convertissant en bibliothèque Web.
TheAddonDepot
1
@DimuDesigns firebase DB a des règles de sécurité pour empêcher la mise à jour de l'utilisateur de manipuler vos données. Par exemple, supprimez les données d'autres personnes. Cela signifie DB sans backend, vous n'avez pas besoin de backend pour vérifier la validité de l'entrée, alors qu'il n'est pas acceptable de laisser le client faire de même avec gdatastore
Thaina
@DimuDesigns ou jonnydee: Datastore possède-t-il toutes les fonctionnalités de Firebase plus les deux répertoriées pour Datastore? Ou du moins, veuillez répondre, est-ce que Datastore dispose également de données en temps réel de la même manière que Firebase?
Bryan Dimas
1
@BryanDimas Datastore ne prend pas en charge nativement les déclencheurs d'événements en temps réel lorsque les données changent. Cependant, il existe une fonctionnalité appelée "Mise en file d'attente des tâches transactionnelles". Ce n'est pas en temps réel mais c'est une option viable. Cependant, il a été question d'implémenter la fonctionnalité de manière native: issuetracker.google.com/issues/62959790
TheAddonDepot
1
@BryanDimas Voici un lien vers une documentation concernant "Mise en file d'attente des tâches transactionnelles": cloud.google.com/appengine/docs/standard/python/ndb/…
TheAddonDepot
14

firebase pourrait être dit spécifiquement pour la plate-forme mobile. Google Cloud était une solution d'entreprise.

Firebase a développé ses sdks en gardant à l'esprit Android, IOS, Web et Unity (moteur de jeu). Vous n'avez pas besoin du serveur Web pour interagir avec ses composants. Ses sdks suffisent pour cela. Donc, aucun coût de serveur Web ou de serveurs d'applications. Il a une base de données en temps réel, vous pouvez écouter et il est ridiculement rapide.

Il dispose d'un service de messagerie cloud, d'une authentification, de fonctions Lambda et d'un stockage de masse (comme tout autre cloud). Sa documentation est très succincte. Vous n'avez donc pas besoin de parcourir des milliers de pages pour comprendre un service cloud typique comme AWS ou Google Cloud. Il m'a fallu un mois pour intégrer mon jeu à AWS, mais il ne m'a fallu qu'une semaine pour l'intégrer à Firebase.

sn.anurag
la source
8

Mise à jour d'octobre 2017 (Firebase a publié Cloud Firestore):

Il convient de noter qu'avec la récente version de Cloud Firestore (version bêta d'octobre 2017), les avantages de Datastore par rapport à «Firebase» que johnydee mentionnés par sont désormais obsolètes si vous utilisez le produit Firestore, car il comporte des requêtes puissantes et est hautement évolutif .

Ces produits (Datastore et Firestore) partagent des racines communes et un seul peut effectivement être utilisé sur le même projet.

La réponse de Johny s'applique toujours si vous comparez la base de données Firebase Realtime à Datastore.

Kqtr
la source
Firestore prend-il en charge le support d'index flexible de type zigzag-merge-join, disponible dans la banque de données? Comme celui décrit dans cloud.google.com/appengine/articles/indexselection
user482594
7

La question est automatiquement abordée dans la dernière version de Firebase lancée dans Google IO 2016, dans laquelle ils ont apporté une intégration à grande échelle entre Firebase et Google Cloud Platform.

Veuillez consulter https://firebase.googleblog.com/2016/05/firebase-expands-to-become-unified-app-platform.html

Tous les services de Google Cloud Platform sont désormais accessibles de manière beaucoup plus simple via Firebase. La manière Firebase d'accéder à la base de données en temps réel a également été étendue à Google Cloud Storage. De nombreuses API côté client de Google Cloud telles que Google Cloud Messaging sont passées à la marque Firebase.

Firebase est clairement la voie à suivre par Google pour l'accès côté client à l'infrastructure des services Google Cloud.

Chebyr
la source
2
Google Cloud Datastore est une base de données évolutive renforcée, Firebase est uniquement pour les applications à petite échelle (<10k connexions) et a des temps d'arrêt de migration de partition réguliers
Mark Essel