web-dev-qa-db-fra.com

MongoDB vs Firebase

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

Je sais que Firebase est un service basé sur le cloud doté de sa propre API, mais j’ai le sentiment que Mongo peut me donner un meilleur contrôle à long terme.

131
itsclarke
  • Firebase est un moteur en temps réel avec connectivité en amont. C'est à dire. vous pouvez créer une application multiplate-forme dans laquelle les clients s'abonnent à des événements sur des données spécifiques et où le serveur informe activement les clients des modifications
  • La couche de données est hébergée pour vous. Attention, il est très évolutif. C'est une belle solution de kick. Y compris la gestion des autorisations
  • 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 la couche de données (si la possession de données est essentielle ou si vous développez une application pour un sous-réseau séparé)

EDIT: voici un Nice article comment remplacer Firebase dans votre application par Node.js + MongoDb. Il montre la quantité de travail que vous auriez à faire vous-même et explique, à mon humble avis, pourquoi une startup (petite application) doit commencer par Firebase (si des mises à jour en temps réel des clients sont requises) et poursuivre avec MongoDb (dans tous les cas, en mode autonome). - solution écrite) si le projet continue d'évoluer

EDIT 2: après avoir été acquis par Google , Firebase offre désormais, outre ses fonctionnalités de base, divers avantages que vous aurez du mal à exploiter par vous-même:

  • Pour le développement

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

110
Kirill Slatin

Pommes et oranges. Firebase est un Backend-as-a-Service contenant une gestion des identités, des vues de données en temps réel et une base de données de documents. Il court dans le nuage.

MongoDB, d’autre part, est une base de données complète 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 base de données, seul MongoDB est bien plus mature et riche en fonctionnalités.

34
Kees de Kooter

Firebase est conçu pour les mises à jour en temps réel. Il s'intègre facilement avec angulaire. Les deux sont des bases de données NoSQL. MongoDB peut également le faire avec Angular via l’intégration 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 basés sur le cloud. À mon avis, Firebase est idéal pour les applications plus petites, très rapides à utiliser. MongoDB est idéal pour les grandes applications plus robustes. Une intégration en temps réel est possible, mais cela demande un peu plus de travail.

24
byrdr

Je vais répondre à cette question en termes de 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 la portée $, c'est-à-dire ce que les utilisateurs de la vue mettent à jour automatiquement dans les variables locales et lorsque votre JavaScript met à jour une variable locale, la vue est automatiquement mise à jour. Avec Firebase, la base de données cloud est également mise à jour automatiquement. Vous n'avez pas besoin d'écrire des demandes $ http.get ou $ http.put, les données sont simplement mises à jour.

  3. Liaison de données à cinq voies, à sept voies, à neuf voies, etc. J'ai créé un jeu de tic-tac-toe avec 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 une partie avec trois joueurs ou plus, partageant tous la même 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 itinéraires Angular pour qu'ils requièrent une autorisation et définir 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. Utiliser son propre serveur peut demander beaucoup de travail, il faut connaître la sécurité, demander à quelqu'un de faire quelque chose si le serveur tombe en panne, etc.

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

19
Thomas David Kehoe

Après avoir utilisé une quantité considérable de Firebase, je suis venu chercher 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 éventail de problèmes, y compris un 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 très facile pour un projet de devenir une chose monolithique qui devient incontrôlable. MongoDB est un bien meilleur choix que 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 prendre les devants.

18
Ramzi C.

Firebase est une suite de fonctionnalités.

  • Base de données en temps réel
  • Hébergement
  • Authentification
  • Espace de rangement
  • Cloud Messaging
  • Configuration à distance
  • Laboratoire de test
  • Rapport d'accident
  • Les notifications
  • Indexation d'applications
  • Liens dynamiques
  • Invite
  • AdWords
  • AdMob

Je crois que vous essayez de comparer la base de données en temps réel Firebase avec Mongo DB. La base de données en temps réel Firebase stocke les données au format JSON et se synchronise avec toutes les mises à jour des données envoyées à tous les clients écoutant les données. Cela vous évite toute la complexité nécessaire pour configurer et mettre à l'échelle toute base de données. Je ne recommanderai pas Firebase lorsque vous avez beaucoup de scénarios complexes dans lesquels une agrégation de données est nécessaire (requêtes nécessitant le type somme/moyenne). Bien que cela ait été réalisé récemment avec les fonctions Firebase. La modélisation des données dans Firebase est délicate. Mais c’est le meilleur moyen de commencer instantanément. MongoDB est une base de données. Cela vous donne beaucoup de fonctionnalités puissantes. Mais lorsque MongoDB est installé sur n’importe quelle plate-forme, vous devez le gérer vous-même.

Lorsque j'essaie de choisir entre Firebase ou MongoDB (ou toute base de données). J'essaie 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 de BI). Si oui n'allez pas pour Firebase
  2. Dois-je effectuer beaucoup de transaction? (Si oui, je ne voudrais pas utiliser Firebase.) (Les transactions sont assez faciles après l’introduction de fonctions, mais c’est aussi une surcharge si beaucoup de transactions doivent être conservées)
  3. Quel calendrier dois-je avoir pour que tout soit opérationnel (Firebase est très facile à installer et à intégrer).
  4. Ai-je une expertise pour mettre à niveau la base de données et résoudre les problèmes liés à la base de données? (Firebase s'apparente davantage à SAAS, vous n'avez donc pas à vous soucier de son évolutivité)
10
suvankar bose

Firebase fournit de bonnes fonctionnalités telles que la réflexion 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 qui 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 tirer parti de toutes les fonctionnalités intégrées de Firebase par rapport à MongoDB.

8
mnhmilu

D'après mon expérience, travailler avec Firebase est un énorme avantage si vous essayez de gérer les utilisateurs, les bases de données, le type 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/interrogation, restez fidèle à mongo.

7
Nam Kim