MongoDB vs Firebase

Quel est l’avantage d’utiliser Firebase sur MongoDB?

Je sais que Firebase est un service cloud avec sa propre API, mais je pense que Mongo peut me donner un plus grand contrôle à long terme.

  • Firebase est un moteur en temps réel avec une connectivité en arrière. C’est-à-dire que vous pouvez créer une application multi-plateforme où les clients s’abonnent à des événements sur des données spécifiques et le serveur informe activement les clients sur les modifications.
  • La couche de données est hébergée pour vous. Rappelez-vous que c’est très évolutif. C’est une bonne solution de kickstarter. Y compris la gestion d’authentification
  • Geo-Fire. Solution de coordonnées géographiques en temps réel.
  • Les inconvénients évidents de Firebase sont les suivants:
    • 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 article intéressant sur la façon de remplacer Firebase dans votre application avec Node.js + MongoDb. Il montre combien de travail vous auriez à faire vous-même et explique, à mon humble avis, pourquoi un démarrage (petite application) devrait commencer par Firebase (si des mises à jour en temps réel sont requirejses) et continuer avec MongoDb (en tout cas solution écrite) si le projet continue d’évoluer

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

  • Pour le developpement

    • Messagerie Cloud : Diffusez et recevez des messages sur des plates-formes fiables
    • Stockage de fichiers : Stockage de fichiers facile (y compris iOS)
    • Hébergement : livre des fichiers statiques à partir des serveurs de Firebase (Inclus dans le plan Free)
    • Crash Reporting : Pas un service de journalisation complet, mais une aide cruciale
  • Pour la croissance

    • Remote Config : personnalisez votre application à la volée: adaptée aux tests A / B
    • Liens dynamics : envoyez les utilisateurs au bon endroit dans votre application
    • Notifications : interagir avec les utilisateurs au bon moment

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 firebase database de documents. Il fonctionne dans le nuage.

MongoDB est une firebase database à 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 firebase database, seul MongoDB est beaucoup plus mature et riche en fonctionnalités.

Firebase est conçu pour des 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 grâce à Socket.io. Meteor.js utilise également MongoDB avec une connexion socket ouverte pour des mises à jour en temps réel.

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

Je vais répondre à cette question en termes de AngularFire, la bibliothèque de Firebase pour Angular.

  1. Tl; dr: superpouvoirs. 🙂

  2. La liaison de données à trois voies d’AngularFire. Angular lie la vue et la scope $, c.-à-d. Ce que vos utilisateurs font automatiquement dans la vue dans les variables locales, et lorsque votre JavaScript met à jour une variable locale, la vue est mise à jour automatiquement. Avec Firebase, la firebase database cloud est également mise à jour automatiquement. Vous n’avez pas besoin d’écrire des requêtes $ 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 réalisé un jeu de tic-tac-toe avec AngularFire. Deux joueurs peuvent jouer ensemble, les deux vues mettant à jour les deux étendues $ et la firebase database cloud. Vous pouvez créer un jeu avec trois joueurs ou plus, partageant tous une firebase database Firebase.

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

  5. Double sécurité Vous pouvez configurer vos itinéraires angulars pour exiger une autorisation et configurer des règles dans Firebase pour savoir 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. Faire fonctionner votre propre serveur peut demander beaucoup de travail, nécessiter une connaissance de la 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 que le client est à 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.

Après avoir utilisé Firebase, je suis arrivé à 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 éventail de problèmes, y compris un système de gestion des erreurs défectueux et des limitations. Vous passerez beaucoup de temps à essayer de comprendre Firebase et ses erreurs. Il est également très facile pour un projet de devenir un élément monolithique qui devient incontrôlable. MongoDB est un choix bien meilleur en ce qui concerne un backend pour 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 bash le sol.

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 d’essai
  • Rapport de collision
  • Les notifications
  • Indexation des applications
  • Liens dynamics
  • Invite
  • AdWords
  • AdMob

Je pense que vous essayez de comparer la firebase database en temps réel Firebase avec la firebase database Mongo. Firebase Realtime Database stocke les données au format JSON et se synchronise avec toutes les mises à jour des données pour tous les clients qui écoutent les données. Il vous extrait de toute complexité nécessaire à la configuration et à la mise à l’échelle de toute firebase database. Je ne recommanderai pas firebase où vous avez beaucoup de scénarios complexes dans lesquels l’agrégation de données est nécessaire (requêtes nécessitant un type de SUM / MOYEN). Bien que cela soit possible récemment avec les fonctions Firebase. La modélisation des données dans Firebase est délicate. Mais c’est le meilleur moyen de démarrer instantanément. MongoDB est une firebase database. Cela vous donne beaucoup de fonctionnalités puissantes. Mais MongoDB, installé sur toute plate-forme, vous devez le gérer vous-même.

Quand j’essaye de choisir entre Firebase ou MongoDB (ou n’importe quelle DB). J’essaie de répondre aux questions suivantes.

  1. Existe-t-il de nombreuses requêtes d’agrégation 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 transactions? (Si oui, je ne voudrais pas utiliser firebase) (les transitions 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 mettre en place (Firebase est très facile à installer et à intégrer).
  4. Ai-je une expertise pour développer la firebase database et résoudre les problèmes liés à la firebase database. (Firebase ressemble plus à SAAS, donc pas besoin de s’inquiéter de l’évolutivité)

Selon mon expérience, travailler avec Firebase est un avantage énorme si vous essayez de gérer des applications, des bases de données ou des applications 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 firebase database / interrogation, restz fidèle à mongo.

Firebase offre de bonnes fonctionnalités comme la reflection en temps réel sur les changements, 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 le développement Web si simple qu’il n’existe jamais. La firebase database Firebase est un fork de MongoDB .

Quel est l’avantage d’utiliser Firebase sur MongoDB?

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