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.
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
Pour la croissance
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.
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.
Je vais répondre à cette question en termes de AngularFire, la bibliothèque de Firebase pour Angular.
Tl; dr: superpuissances. :-)
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.
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.
La bibliothèque OAuth2 d’AngularFire facilite l’autorisation avec Facebook, GitHub, Google, Twitter, les jetons et les mots de passe.
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.
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.
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.
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.
Firebase est une suite de fonctionnalités.
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.
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.
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.