MongoDB vs Firebase [chiuso]


149

Quali sono alcuni vantaggi quantitativi dell'utilizzo di Firebase su MongoDB? (non opinioni)

So che Firebase è un servizio basato su cloud con una propria API, ma credo che Mongo possa darmi un maggiore controllo a lungo termine.


53
@David Non è basato sull'opinione. L'OP non chiede quale sia il migliore (quale sarebbe basato sull'opinione) ma sta chiedendo i benefici (se presenti) di FB su MongoDb. Per avere un'opinione dobbiamo trarre vantaggio da entrambi e svantaggi di entrambi e giudicare quale tecnologia potrebbe essere preferita
Kirill Slatin,

Consiglierei @itsclarke di leggere questo: crisp.chat/blog/…
Junior Mayhé,

2
@KirillSlatin Questa domanda è stata chiusa. Puoi leggere perché domande come questa non sono apprezzate nel post sul blog Gorilla vs Shark . Sebbene il motivo non costruttivo a cui si fa riferimento in questo blog non sia più disponibile, è ancora molto ampio (elencare tutte le differenze in una risposta è noioso), molto basato sul tempo (potrebbero essere aggiunte funzionalità che cambiano questo), e generalmente non è un buon adatto per questo sito.
Erik A

Risposte:


123
  • Firebase è un motore in tempo reale con connettività all'indietro. Vale a dire che potresti creare un'app multipiattaforma in cui i clienti si iscrivono a eventi su dati specifici e il server informa attivamente i clienti sulle modifiche
  • Il livello dati è ospitato per te. Ricorda che è altamente scalabile. È una bella soluzione kickstarter. Compresa la gestione delle autorizzazioni
  • Geo-Fire. Soluzione di coordinate geografiche in tempo reale.
  • Gli svantaggi evidenti di Firebase sono:
    • Devi pagare non appena inizi a crescere
    • Non è possibile ospitare il datalayer (se la proprietà dei dati è critica o si sviluppa un'app per una sottorete separata)

EDIT: ecco un bell'articolo su come sostituire Firebase nella tua app con Node.js + MongoDb. Mostra quanto lavoro dovresti fare da solo e spiega, IMHO, perché una startup (piccola app) dovrebbe iniziare con Firebase (se sono necessari aggiornamenti in tempo reale ai client) e procedere con MongoDb (in ogni caso soluzione scritta) se il progetto continua a evolversi

EDIT 2: dopo essere stato acquisito da Google Firebase ora offre vari vantaggi oltre alle sue funzionalità di base che difficilmente potresti costruire da solo:


39

Mele e arance Firebase è un servizio di back-end-come-un-servizio contenente gestione delle identità, visualizzazioni dei dati in tempo reale e un database di documenti. Funziona nel cloud.

MongoDB d'altra parte è un database completo con un linguaggio di query avanzato. In linea di principio, funziona sul tuo computer, ma ci sono provider cloud.

Se stai cercando il componente del database solo MongoDB è molto più maturo e ricco di funzionalità.


31

Firebase è progettato per aggiornamenti in tempo reale. Si integra facilmente con angolare. Entrambi sono database NoSQL. MongoDB può anche farlo con Angular tramite l'integrazione Socket.io. Meteor.js utilizza anche MongoDB con una connessione socket aperta per aggiornamenti in tempo reale.

MongoDB può essere eseguito localmente o ospitato su diversi provider basati su cloud. Firebase, a mio avviso, è ottimo per le app più piccole, molto veloce per essere installato e funzionante. MongoDB è ideale per app più grandi e robuste, l'integrazione in tempo reale è possibile ma richiede un po 'più di lavoro.


23

Dopo aver usato Firebase una quantità considerevole sono arrivato a trovare qualcosa.

Se intendi utilizzarlo per app di grandi dimensioni in tempo reale, non è la scelta migliore. Ha una vasta gamma di problemi tra cui un sistema di gestione degli errori difettoso e limitazioni. Passerai molto tempo a cercare di capire Firebase e i suoi nodi. È anche abbastanza facile per un progetto diventare una cosa monolitica che va fuori controllo. MongoDB è una scelta molto migliore per quanto riguarda un backend per un'app di grandi dimensioni.

Tuttavia, se devi creare una piccola app o prototipare rapidamente qualcosa, Firebase è un'ottima scelta. Sarà un modo incredibilmente semplice per colpire il terreno correndo.


22

Risponderò a questa domanda in termini di AngularFire, la libreria di Firebase per Angular.

  1. Tl; dr: superpoteri. :-)

  2. Associazione dati a tre vie di AngularFire. Angolare associa la vista e l'ambito $, ovvero che cosa fanno gli utenti nella vista si aggiorna automaticamente nelle variabili locali e quando JavaScript aggiorna una variabile locale la vista si aggiorna automaticamente. Con Firebase anche il database cloud si aggiorna automaticamente. Non è necessario scrivere richieste $ http.get o $ http.put, i dati si aggiornano.

  3. Binding dati a cinque vie e sette vie, nove vie, ecc. Ho realizzato un gioco tic-tac-toe usando AngularFire. Due giocatori possono giocare insieme, con le due viste che aggiornano i due $ ambiti e il database cloud. Puoi creare un gioco con tre o più giocatori, tutti condividendo un database Firebase.

  4. La libreria OAuth2 di AngularFire semplifica l'autorizzazione con Facebook, GitHub, Google, Twitter, token e password.

  5. Doppia sicurezza. È possibile impostare i percorsi angolari in modo da richiedere l'autorizzazione e impostare le regole in Firebase su chi può leggere e scrivere i dati.

  6. Non c'è back-end. Non è necessario creare un server con Node ed Express. L'esecuzione del proprio server può richiedere molto lavoro, richiedere informazioni sulla sicurezza, richiedere che qualcuno faccia qualcosa se il server non funziona, ecc.

  7. Veloce. Se il tuo server è a San Francisco e il client è a San Jose, va bene. Ma per un client a Bangalore la connessione al tuo server sarà più lenta. Firebase è distribuito in tutto il mondo per connessioni veloci ovunque.


cos'è Fireloop? è questo un modo di scrivere api api con la base di fuoco?
ashishSober

in realtà penso che angularfire sia fantastico, c'è un modo per prenderlo e passarlo sopra per usarlo con il proprio sistema di database? anche per poter aggiornare istantaneamente i tuoi valori
Kross

Mi piace la tua ultima parte del commento: "Firebase è distribuito in tutto il mondo per connessioni veloci ovunque".
Lester,

13

Nella mia esperienza, lavorare con Firebase è un enorme vantaggio se stai provando a fare la gestione degli utenti, il database, il tipo di app di messaggistica poiché tutte queste funzionalità sono già ben integrate.

Come altri hanno già detto, se ti concentri solo sull'aspetto del database / query, segui mongo.


13

Firebase è una suite di funzionalità.

  • Database in tempo reale
  • Ospitando
  • Autenticazione
  • Conservazione
  • Cloud Messaging
  • Configurazione remota
  • Test Lab
  • Segnalazione di arresti anomali
  • notifiche
  • Indicizzazione delle app
  • Collegamenti dinamici
  • Inviti
  • AdWords
  • AdMob

Credo che tu stia cercando di confrontare Firebase Realtime Database con Mongo DB. Firebase Realtime Database archivia i dati come formato JSON e si sincronizza con tutti gli aggiornamenti dei dati a tutti i client che ascoltano i dati. Ti astrae da tutta la complessità necessaria per configurare e ridimensionare qualsiasi database. Non consiglierò Firebase in presenza di molti scenari complessi in cui è necessaria l'aggregazione dei dati (query che richiedono tipi di sommario / MEDIA). Anche se questo è recentemente ottenibile utilizzando le funzioni Firebase. La modellazione dei dati in Firebase è complicata. Ma è il modo migliore per iniziare istantaneamente. MongoDB è un database. Questo ti offre molte potenti funzionalità. Ma MongoDB, se installato su qualsiasi piattaforma, è necessario gestirlo da soli.

Quando provo a scegliere tra Firebase o MongoDB (o qualsiasi DB). Provo a rispondere a quanto segue.

  1. Esistono molte query di aggregazione che vengono eseguite (come nel caso dello strumento di reporting o dello strumento BI). Se Sì, non andare per Firebase
  2. Devo eseguire molte transazioni. (Se sì, allora non vorrei andare con Firebase) (Le transazioni sono in qualche modo facili dopo l'introduzione delle funzioni, ma è anche un sovraccarico se molte transazioni devono essere mantenute)
  3. Quale tempistica devo avere per far funzionare le cose (Firebase è molto facile da configurare e integrare).
  4. Ho esperienza per scalare il DB e risolvere problemi relativi al DB. (Firebase è più simile a SAAS, quindi non è necessario preoccuparsi della scalabilità)

13

Firebase offre alcune buone funzionalità come la riflessione delle modifiche in tempo reale, una facile integrazione del meccanismo di autenticazione e molte altre funzionalità integrate per un rapido sviluppo web. Firebase, rende lo sviluppo Web così semplice che non esiste mai. Il database Firebase è un fork di MongoDB .

Qual è il vantaggio dell'utilizzo di Firebase su MongoDB?

Puoi sfruttare tutte le funzionalità integrate di Firebase su MongoDB.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.