MongoDB vs Firebase [geschlossen]

148

Was sind einige quantitative Vorteile der Verwendung von Firebase gegenüber MongoDB? (keine Meinungen)

Ich weiß, dass Firebase ein Cloud-basierter Dienst mit eigener API ist, aber ich bin der Meinung, dass Mongo mir auf lange Sicht eine bessere Kontrolle geben könnte.

itsclarke
quelle
53
@ David Es ist nicht meinungsbasiert. Das OP fragt nicht , was besser ist (was meinungsbasiert wäre), sondern fragt nach Vorteilen (falls vorhanden) von FB gegenüber MongoDb. Um eine Meinung zu haben, müssen wir hier die Vor- und Nachteile beider ziehen und beurteilen, welche Technologie bevorzugt werden könnte
Kirill Slatin
Ich würde @itsclarke empfehlen, dies zu lesen: crisp.chat/blog/…
Junior Mayhé
2
@KirillSlatin Diese Frage wurde nun geschlossen. Sie können lesen, warum Fragen wie diese im Blog-Beitrag Gorilla vs Shark nicht berücksichtigt werden . Der nicht konstruktive Grund, auf den in diesem Blog Bezug genommen wird, ist zwar nicht mehr verfügbar, aber dennoch sehr weit gefasst (das Aufzählen aller Unterschiede in einer Antwort ist mühsam), sehr zeitbasiert (möglicherweise werden Funktionen hinzugefügt, die dies ändern) und im Allgemeinen nicht gut fit für diese Seite.
Erik A

Antworten:

123
  • Firebase ist eine Echtzeit-Engine mit Rückwärtsverbindung. Das heißt, Sie können eine plattformübergreifende App erstellen, in der Clients Ereignisse für bestimmte Daten abonnieren und der Server Clients aktiv über Änderungen informiert
  • Die Datenschicht wird für Sie gehostet. Beachten Sie, dass es hoch skalierbar ist. Es ist eine schöne Kickstarter-Lösung. Einschließlich Authentifizierungsverwaltung
  • Geo-Feuer. Echtzeit-Geokoordinatenlösung.
  • Offensichtliche Nachteile von Firebase sind:
    • Sie müssen dafür bezahlen, sobald Sie anfangen zu wachsen
    • Sie können keine Datenschicht hosten (wenn der Besitz von Daten kritisch ist oder Sie eine App für ein getrenntes Subnetz entwickeln)

BEARBEITEN: Hier ist ein schöner Artikel, wie Sie Firebase in Ihrer App durch Node.js + MongoDb ersetzen können. Es zeigt, wie viel Arbeit Sie alleine erledigen müssten, und erklärt meiner Meinung nach, warum ein Startup (kleine App) mit Firebase beginnen sollte (wenn Echtzeit-Updates für Clients erforderlich sind) und mit MongoDb fortfahren sollte (auf jeden Fall selbst) -geschriebene Lösung), wenn sich das Projekt weiterentwickelt

BEARBEITEN 2: Nach der Übernahme durch Google Firebase bietet es jetzt zusätzlich zu den grundlegenden Funktionen verschiedene Vorteile, die Sie nur schwer selbst aufbauen können:

  • Zur Entwicklung

    • Cloud Messaging : Liefern und empfangen Sie Nachrichten plattformübergreifend zuverlässig
    • Dateispeicherung : Einfache Dateispeicherung (einschließlich iOS)
    • Hosting : Bereitstellung statischer Dateien von den Firebase-Servern (im kostenlosen Plan enthalten)
    • Crash Reporting : Kein vollständiger Protokollierungsdienst, aber entscheidende Hilfe
  • Für das Wachstum

Kirill Slatin
quelle
39

Äpfel und Orangen. Firebase ist ein Backend-as-a-Service, das Identitätsverwaltung, Echtzeitdatenansichten und eine Dokumentendatenbank enthält. Es läuft in der Cloud.

MongoDB hingegen ist eine vollwertige Datenbank mit einer umfangreichen Abfragesprache. Im Prinzip läuft es auf Ihrem eigenen Computer, aber es gibt Cloud-Anbieter.

Wenn Sie nach der Datenbankkomponente suchen, ist nur MongoDB viel ausgereifter und funktionsreicher.

Kees de Kooter
quelle
31

Firebase wurde für Echtzeit-Updates entwickelt. Es lässt sich leicht in Winkel integrieren. Beide sind NoSQL-Datenbanken. MongoDB kann dies auch mit Angular über die Socket.io-Integration tun. Meteor.js verwendet auch MongoDB mit einer offenen Socket-Verbindung für Echtzeit-Updates.

MongoDB kann lokal ausgeführt oder auf vielen verschiedenen Cloud-basierten Anbietern gehostet werden. Firebase eignet sich meiner Meinung nach hervorragend für kleinere Apps und ist sehr schnell einsatzbereit. MongoDB ist ideal für robustere größere Apps. Eine Echtzeitintegration ist möglich, erfordert jedoch etwas mehr Arbeit.

byrdr
quelle
23

Nachdem ich Firebase eine beträchtliche Menge benutzt habe, bin ich gekommen, um etwas zu finden.

Wenn Sie es für große Echtzeit-Apps verwenden möchten, ist es nicht die beste Wahl. Es hat seine eigene breite Palette von Problemen, einschließlich eines schlechten Fehlerbehandlungssystems und Einschränkungen. Sie werden viel Zeit damit verbringen, Firebase und seine Probleme zu verstehen. Es ist auch ziemlich einfach für ein Projekt, eine monolithische Sache zu werden, die außer Kontrolle gerät. MongoDB ist eine viel bessere Wahl, wenn es um das Backend einer großen App geht.

Wenn Sie jedoch eine kleine App erstellen oder schnell einen Prototyp erstellen müssen, ist Firebase eine gute Wahl. Es wird eine unglaublich einfache Möglichkeit sein, das Rennen zu beginnen.

Ramzi C.
quelle
22

Ich werde diese Frage in Bezug auf AngularFire, Firebases Bibliothek für Angular, beantworten.

  1. Tl; dr: Supermächte. :-)

  2. AngularFires Drei-Wege-Datenbindung. Angular bindet die Ansicht und den $ scope, dh, was Ihre Benutzer in der Ansicht automatisch in den lokalen Variablen aktualisieren, und wenn Ihr JavaScript eine lokale Variable aktualisiert, wird die Ansicht automatisch aktualisiert. Mit Firebase wird die Cloud-Datenbank auch automatisch aktualisiert. Sie müssen keine $ http.get- oder $ http.put-Anforderungen schreiben, die Daten werden nur aktualisiert.

  3. Fünf-Wege-Datenbindung und Sieben-Wege-Datenbindung, Neun-Wege-Datenbindung usw. Ich habe mit AngularFire ein Tic-Tac-Toe-Spiel erstellt. Zwei Spieler können zusammen spielen, wobei die beiden Ansichten die beiden $ scopes und die Cloud-Datenbank aktualisieren. Sie können ein Spiel mit drei oder mehr Spielern erstellen, die alle eine Firebase-Datenbank gemeinsam nutzen.

  4. Die OAuth2-Bibliothek von AngularFire erleichtert die Autorisierung mit Facebook, GitHub, Google, Twitter, Token und Passwörtern.

  5. Doppelte Sicherheit. Sie können Ihre Angular-Routen so einrichten, dass eine Autorisierung erforderlich ist, und in Firebase Regeln festlegen, wer Daten lesen und schreiben darf.

  6. Es gibt kein Backend. Sie müssen keinen Server mit Node und Express erstellen. Das Ausführen eines eigenen Servers kann eine Menge Arbeit sein, erfordert Kenntnisse über die Sicherheit, erfordert, dass jemand etwas unternimmt, wenn der Server ausfällt usw.

  7. Schnell. Wenn sich Ihr Server in San Francisco und der Client in San Jose befindet, ist dies in Ordnung. Für einen Client in Bangalore ist die Verbindung zu Ihrem Server jedoch langsamer. Firebase wird weltweit für schnelle Verbindungen überall eingesetzt.

Thomas David Kehoe
quelle
Was ist Fireloop? Ist dies eine Möglichkeit, eine Rest-API mit der Firebase zu schreiben?
ashishSober
Eigentlich denke ich, dass Angularfire erstaunlich ist. Gibt es eine Möglichkeit, es zu nehmen und an Ihr eigenes Datenbanksystem weiterzugeben? In diesem Fall mit Mongo. Es wäre also erstaunlich, wenn Sie drei Datenwege verwenden könnten auch in der Lage zu sein, Ihre Werte sofort zu aktualisieren
Kross
Ich mag Ihren letzten Teil des Kommentars: "Firebase wird weltweit für schnelle Verbindungen überall eingesetzt."
Lester
13

Nach meiner Erfahrung ist die Arbeit mit Firebase ein großer Vorteil, wenn Sie versuchen, Benutzerverwaltung, Datenbank und Messaging-App durchzuführen, da alle diese Funktionen bereits gut integriert sind.

Wie andere gesagt haben, wenn Sie sich nur auf den Datenbank- / Abfrageaspekt konzentrieren, bleiben Sie bei Mongo.

Nam Kim
quelle
13

Firebase ist eine Reihe von Funktionen.

  • Echtzeitdatenbank
  • Hosting
  • Authentifizierung
  • Lager
  • Cloud Messaging
  • Remote-Konfiguration
  • Testlabor
  • Absturzberichterstattung
  • Benachrichtigungen
  • App-Indizierung
  • Dynamische Links
  • Lädt ein
  • AdWords
  • AdMob

Ich glaube, Sie versuchen, Firebase Realtime Database mit Mongo DB zu vergleichen. Die Firebase Realtime Database speichert Daten im JSON-Format und synchronisiert alle Aktualisierungen der Daten mit allen Clients, die die Daten abhören. Es abstrahiert Sie von jeglicher Komplexität, die zum Einrichten und Skalieren einer Datenbank erforderlich ist. Ich werde Firebase nicht empfehlen, wenn Sie viele komplexe Szenarien haben, in denen eine Aggregation von Daten erforderlich ist (Abfragen, die SUM / AVERAGE-Material benötigen). Dies ist jedoch kürzlich mit Firebase-Funktionen möglich. Das Modellieren von Daten in Firebase ist schwierig. Aber es ist der beste Weg, um sofort loszulegen. MongoDB ist eine Datenbank. Dies gibt Ihnen viele leistungsstarke Funktionen. Wenn MongoDB auf einer beliebigen Plattform installiert ist, müssen Sie es selbst verwalten.

Wenn ich versuche, zwischen Firebase oder MongoDB (oder einer beliebigen Datenbank) zu wählen. Ich versuche folgendes zu beantworten.

  1. Gibt es viele Aggregationsabfragen, die ausgeführt werden (wie im Fall eines Berichtstools oder eines BI-Tools)? Wenn ja, entscheiden Sie sich nicht für Firebase
  2. Muss ich viel Transaktion durchführen? (Wenn ja, dann möchte ich nicht mit Firebase gehen) (Transaktionen sind zwar nach Einführung von Funktionen etwas einfach, aber das ist auch ein Overhead, wenn viele Transaktionen gepflegt werden müssen)
  3. Welche Zeitleiste muss ich verwenden, um die Dinge zum Laufen zu bringen? (Firebase ist sehr einfach einzurichten und zu integrieren).
  4. Habe ich Fachwissen, um die DB zu vergrößern und DB-bezogene Dinge zu beheben? (Firebase ähnelt eher SAAS, sodass Sie sich keine Gedanken über die Skalierbarkeit machen müssen.)
Suvankar Bose
quelle
13

Firebase bietet einige gute Funktionen wie Echtzeit-Änderungsreflexion, einfache Integration des Authentifizierungsmechanismus und viele andere integrierte Funktionen für eine schnelle Webentwicklung. Firebase macht die Webentwicklung wirklich so einfach, dass es sie nie gibt. Die Firebase-Datenbank ist eine Abzweigung von MongoDB .

Was ist der Vorteil von Firebase gegenüber MongoDB?

Sie können alle integrierten Funktionen von Firebase über MongoDB nutzen.

mnhmilu
quelle