MongoDB vs Firebase [fermé]

149

Quels sont les avantages quantitatifs de l'utilisation de Firebase par rapport à MongoDB? (pas d'opinions)

Je sais que Firebase est un service basé sur le cloud avec sa propre API, mais j'ai l'impression que Mongo peut me donner un plus grand contrôle à long terme.

itsclarke
la source
53
@David Ce n'est pas basé sur une opinion. L'OP ne demande pas ce qui est meilleur (ce qui serait basé sur l'opinion) mais demande les avantages (le cas échéant) de FB par rapport à MongoDb. Pour avoir une opinion, nous devons tirer ici les avantages des deux et les inconvénients des deux et juger quelle technologie pourrait être préférée
Kirill Slatin
Je recommanderais @itsclarke de lire ceci: crisp.chat/blog/…
Junior Mayhé
2
@KirillSlatin Cette question est maintenant close. Vous pouvez lire pourquoi des questions comme celle-ci ne sont pas appréciées dans le billet de blog Gorilla vs Shark . Bien que la raison non constructive mentionnée dans ce blog ne soit plus disponible, elle reste très large (énumérer toutes les différences dans une réponse est fastidieuse), très basée sur le temps (des fonctionnalités pourraient être ajoutées pour changer cela), et généralement pas une bonne fit pour ce site.
Erik A

Réponses:

123
  • Firebase est un moteur en temps réel avec une connectivité en amont. Par exemple, vous pouvez créer une application multiplateforme où les clients s'abonnent à des événements sur des données spécifiques et le serveur informe activement les clients des modifications
  • La couche de données est hébergée pour vous. N'oubliez pas qu'il est hautement évolutif. C'est une belle solution kickstarter. Y compris la gestion des authentifications
  • Geo-Fire. Solution de coordonnées géographiques en temps réel.
  • Les inconvénients évidents de Firebase sont:
    • Vous devez payer pour cela dès que vous commencez à grandir
    • Vous ne pouvez pas héberger le datalayer (si la possession de données est critique ou si vous développez une application pour un sous-réseau séparé)

EDIT: voici un bel article sur la façon de remplacer Firebase dans votre application par Node.js + MongoDb. Il montre combien de travail vous auriez à faire par vous-même et explique, à mon humble avis, pourquoi une startup (petite application) devrait commencer avec Firebase (si des mises à jour en temps réel des clients sont nécessaires) et continuer avec MongoDb (en tout cas soi -solution écrite) si le projet continue d'évoluer

EDIT 2: après avoir été acquis par Google Firebase offre désormais divers avantages en plus de ses fonctionnalités de base que vous auriez du mal à construire vous-même:

  • Pour le developpement

    • Cloud Messaging : envoyez et recevez des messages sur toutes les plateformes de manière fiable
    • Stockage de fichiers : stockage de fichiers facile (y compris iOS)
    • Hébergement : fournir des fichiers statiques à partir des serveurs de Firebase (inclus dans le plan gratuit)
    • Crash Reporting : pas un service de journalisation complet, mais une aide cruciale
  • Pour la croissance

    • Remote Config : personnalisez votre application à la volée: convient aux tests A / B
    • Liens dynamiques : envoyez les utilisateurs au bon endroit dans votre application
    • Notifications : interagissez avec les utilisateurs au bon moment
Kirill Slatin
la source
39

Pommes et oranges. Firebase est un backend-as-a-service contenant la gestion des identités, des vues de données en temps réel et une base de données de documents. Il fonctionne dans le cloud.

MongoDB, d'autre part, est une base de données à part entière avec un langage de requête riche. En principe, il fonctionne sur votre propre machine, mais il existe des fournisseurs de cloud.

Si vous recherchez le composant de base de données, seul MongoDB est beaucoup plus mature et riche en fonctionnalités.

Kees de Kooter
la source
31

Firebase est conçu pour les mises à jour en temps réel. Il s'intègre facilement avec angular. Les deux sont des bases de données NoSQL. MongoDB peut également le faire avec l'intégration Angular via Socket.io. Meteor.js utilise également MongoDB avec une connexion socket ouverte pour les mises à jour en temps réel.

MongoDB peut être exécuté localement ou hébergé sur de nombreux fournisseurs cloud différents. Firebase, à mon avis, est idéal pour les petites applications, très rapide à démarrer. MongoDB est idéal pour les applications plus volumineuses plus robustes, l'intégration en temps réel est possible mais cela demande un peu plus de travail.

byrdr
la source
23

Après avoir utilisé Firebase une quantité considérable, je suis venu pour trouver quelque chose.

Si vous avez l'intention de l'utiliser pour de grandes applications en temps réel, ce n'est pas le meilleur choix. Il a son propre large éventail de problèmes, y compris un mauvais système de gestion des erreurs et des limitations. Vous passerez beaucoup de temps à essayer de comprendre Firebase et ses problèmes. Il est également assez facile pour un projet de devenir une chose monolithique qui devient incontrôlable. MongoDB est un bien meilleur choix en ce qui concerne le backend d'une grande application.

Cependant, si vous avez besoin de créer une petite application ou de prototyper rapidement quelque chose, Firebase est un excellent choix. Ce sera un moyen incroyablement facile de démarrer.

Ramzi C.
la source
22

Je répondrai à cette question en termes d'AngularFire, la bibliothèque de Firebase pour Angular.

  1. Tl; dr: superpuissances. :-)

  2. Liaison de données à trois voies d'AngularFire. Angular lie la vue et le $ scope, c'est-à-dire que ce que vos utilisateurs font dans la vue se met à jour automatiquement dans les variables locales, et lorsque votre JavaScript met à jour une variable locale, la vue se met à jour automatiquement. Avec Firebase, la base de données cloud se met également à jour automatiquement. Vous n'avez pas besoin d'écrire des requêtes $ http.get ou $ http.put, les données se mettent simplement à jour.

  3. Liaison de données à cinq voies, et sept voies, neuf voies, etc. J'ai créé un jeu de tic-tac-toe en utilisant AngularFire. Deux joueurs peuvent jouer ensemble, les deux vues mettant à jour les deux $ scopes et la base de données cloud. Vous pouvez créer un jeu avec trois joueurs ou plus, tous partageant une base de données Firebase.

  4. La bibliothèque OAuth2 d'AngularFire facilite l'autorisation avec Facebook, GitHub, Google, Twitter, les jetons et les mots de passe.

  5. Double sécurité. Vous pouvez configurer vos routes Angular pour exiger une autorisation et configurer des règles dans Firebase pour déterminer qui peut lire et écrire des données.

  6. Il n'y a pas de back-end. Vous n'avez pas besoin de créer un serveur avec Node et Express. L'exécution de votre propre serveur peut demander beaucoup de travail, exiger des connaissances en matière de sécurité, exiger que quelqu'un fasse quelque chose si le serveur tombe en panne, etc.

  7. Vite. Si votre serveur est à San Francisco et le client à San Jose, très bien. Mais pour un client à Bangalore, la connexion à votre serveur sera plus lente. Firebase est déployé dans le monde entier pour des connexions rapides partout.

Thomas David Kehoe
la source
Qu'est-ce que Fireloop?, est-ce une façon d'écrire une API de repos avec la base de feu?
ashishSober
en fait, je pense qu'angularfire est incroyable, y a-t-il un moyen de le prendre et de le transmettre pour l'utiliser avec votre propre système de base de données?, dans ce cas avec Mongo, ce serait donc incroyable que vous puissiez utiliser trois liaisons de données et également pour pouvoir mettre à jour instantanément vos valeurs
Kross
J'aime votre dernière partie de commentaire: "Firebase est déployé dans le monde entier pour des connexions rapides partout."
Lester
13

D'après mon expérience, travailler avec Firebase est un énorme avantage si vous essayez de gérer des utilisateurs, une base de données, une sorte d'application de messagerie, car toutes ces fonctionnalités sont déjà bien intégrées.

Comme d'autres l'ont dit, si vous vous concentrez uniquement sur l'aspect base de données / requête, tenez-vous-en à mongo.

Nam Kim
la source
13

Firebase est une suite de fonctionnalités.

  • Base de données en temps réel
  • Hébergement
  • Authentification
  • Espace de rangement
  • Messagerie cloud
  • Configuration à distance
  • Laboratoire de test
  • Rapports de crash
  • Notifications
  • Indexation des applications
  • Liens dynamiques
  • Invite
  • AdWords
  • AdMob

Je crois que vous essayez de comparer Firebase Realtime Database avec Mongo DB. Firebase Realtime Database stocke les données au format JSON et se synchronise avec toutes les mises à jour des données vers tous les clients qui écoutent les données. Il vous évite toute la complexité nécessaire pour configurer et mettre à l'échelle n'importe quelle base de données. Je ne recommanderai pas firebase où vous avez beaucoup de scénarios complexes où l'agrégation de données est nécessaire (requêtes qui nécessitent un genre de choses SUM / MOYENNE). Bien que cela soit récemment possible en utilisant les fonctions Firebase. La modélisation des données dans Firebase est délicate. Mais c'est la meilleure façon de vous lancer instantanément. MongoDB est une base de données. Cela vous donne de nombreuses fonctionnalités puissantes. Mais MongoDB lorsqu'il est installé sur n'importe quelle plate-forme, vous devez le gérer vous-même.

Quand j'essaye de choisir entre Firebase ou MongoDB (ou n'importe quel DB). J'essaye de répondre à ce qui suit.

  1. Existe-t-il de nombreuses requêtes d'agrégation qui sont exécutées (comme dans le cas d'un outil de reporting ou d'un outil BI). Si oui, n'utilisez pas Firebase
  2. Dois-je effectuer beaucoup de transactions. (Si oui, je ne voudrais pas utiliser Firebase) (Les transactions sont un peu faciles après l'introduction des fonctions mais c'est aussi une surcharge si beaucoup de transactions doivent être maintenues)
  3. Quel calendrier dois-je avoir pour que les choses soient opérationnelles (Firebase est très facile à configurer et à intégrer).
  4. Ai-je l'expertise pour étendre la base de données et résoudre les problèmes liés à la base de données. (Firebase ressemble plus à SAAS, donc pas besoin de s'inquiéter de l'évolutivité)
suvankar bose
la source
13

Firebase fournit de bonnes fonctionnalités telles que la réflexion des changements en temps réel, l'intégration facile du mécanisme d'authentification et de nombreuses autres fonctionnalités intégrées pour un développement Web rapide. Firebase, rend vraiment le développement Web si simple qu'il n'existe jamais. La base de données Firebase est un fork de MongoDB .

Quel est l'avantage d'utiliser Firebase par rapport à MongoDB?

Vous pouvez profiter de toutes les fonctionnalités intégrées de Firebase sur MongoDB.

mnhmilu
la source