MongoDB vs Firebase [fechado]

149

Quais são algumas vantagens quantitativas do uso do Firebase sobre o MongoDB? (não opiniões)

Sei que o Firebase é um serviço baseado em nuvem com sua própria API, mas sinto que o Mongo pode me dar maior controle a longo prazo.

itsclarke
fonte
53
@ David Não é baseado em opinião. O OP não está perguntando qual é o melhor (o que seria baseado em opinião), mas está pedindo benefícios (se houver) do CE sobre o MongoDb. Para ter a opinião que precisamos para puxar aqui benefícios de ambos e desvantagens de ambos e juiz que poderia ser preferidas tecnologia
Kirill Slatin
Eu recomendaria @itsclarke de ler isto: crisp.chat/blog/...
júnior Mayhé
2
@KirillSlatin Esta questão foi encerrada. Você pode ler por que perguntas como essa não são apreciadas na postagem do blog Gorilla vs Shark . Embora o motivo não construtivo mencionado neste blog não esteja mais disponível, ele ainda é muito amplo (enumerar todas as diferenças em uma resposta é tedioso), muito baseado em tempo (podem ser adicionados recursos que alteram isso) e geralmente não é um bom apto para este site.
Erik A

Respostas:

123
  • O Firebase é um mecanismo em tempo real com conectividade reversa. Ou seja, você pode criar um aplicativo de plataforma cruzada em que os clientes se inscrevam em eventos em dados específicos e o servidor informa ativamente os clientes sobre alterações
  • A camada de dados está hospedada para você. Lembre-se de que é altamente escalável. É uma boa solução kickstarter. Incluindo gerenciamento de autenticação
  • Geo-fogo. Solução de coordenadas geográficas em tempo real.
  • As desvantagens evidentes do Firebase são:
    • Você tem que pagar por isso assim que começar a crescer
    • Você não pode hospedar a camada de dados (se a posse de dados é crítica ou você desenvolve um aplicativo para alguma sub-rede separada)

EDIT: aqui está um bom artigo como substituir o Firebase no seu aplicativo por Node.js + MongoDb. Ele mostra quanto trabalho você teria que fazer por conta própria e explica, IMHO, por que uma inicialização (aplicativo pequeno) deve começar com o Firebase (se são necessárias atualizações em tempo real para os clientes) e prosseguir com o MongoDb (em qualquer caso, auto solução escrita) se o projeto continuar evoluindo

EDIT 2: depois de ser adquirido pelo Google Firebase, agora oferece várias vantagens além de seus recursos básicos que você lutaria para construir por conta própria:

  • Para desenvolvimento

  • Para crescimento

Kirill Slatin
fonte
39

Maçãs e laranjas. O Firebase é um back-end como serviço que contém gerenciamento de identidades, visualizações de dados em tempo real e um banco de dados de documentos. Ele roda na nuvem.

O MongoDB, por outro lado, é um banco de dados completo com uma rica linguagem de consulta. Em princípio, ele roda em sua própria máquina, mas existem provedores de nuvem.

Se você está procurando pelo componente de banco de dados, apenas o MongoDB é muito mais maduro e rico em recursos.

Kees de Kooter
fonte
31

O Firebase foi projetado para atualizações em tempo real. Integra-se facilmente com angular. Ambos são bancos de dados NoSQL. O MongoDB também pode fazer isso com a Angular através da integração com o Socket.io. O Meteor.js também utiliza o MongoDB com uma conexão de soquete aberto para atualizações em tempo real.

O MongoDB pode ser executado localmente ou hospedado em diversos provedores baseados em nuvem. O Firebase, na minha opinião, é ótimo para aplicativos menores, muito rápidos para começar a funcionar. O MongoDB é ideal para aplicativos maiores e mais robustos, a integração em tempo real é possível, mas é preciso um pouco mais de trabalho.

byrdr
fonte
23

Depois de usar o Firebase uma quantidade considerável, cheguei a encontrar algo.

Se você pretende usá-lo para aplicativos grandes e em tempo real, não é a melhor opção. Ele possui sua própria variedade de problemas, incluindo um mau sistema de tratamento de erros e limitações. Você passará um tempo significativo tentando entender o Firebase e suas dobras. Também é bastante fácil para um projeto se tornar uma coisa monolítica que sai de controle. O MongoDB é uma escolha muito melhor no que diz respeito ao back-end de um aplicativo grande.

No entanto, se você precisar criar um aplicativo pequeno ou criar protótipo rapidamente, o Firebase é uma ótima opção. Será uma maneira incrivelmente fácil de começar a correr.

Ramzi C.
fonte
22

Responderei a essa pergunta em termos da AngularFire, a biblioteca do Firebase para Angular.

  1. Tl; dr: superpotências. :-)

  2. Ligação de dados de três vias do AngularFire. Angular vincula a visualização e o escopo $, ou seja, o que seus usuários fazem na visualização são atualizados automaticamente nas variáveis ​​locais e, quando o JavaScript atualiza uma variável local, a visualização é atualizada automaticamente. Com o Firebase, o banco de dados em nuvem também é atualizado automaticamente. Você não precisa escrever solicitações $ http.get ou $ http.put, os dados são atualizados.

  3. Ligação de dados de cinco vias, e sete, nove vias, etc. Criei um jogo da velha com o AngularFire. Dois jogadores podem jogar juntos, com as duas visualizações atualizando os dois escopos $ e o banco de dados em nuvem. Você pode fazer um jogo com três ou mais jogadores, todos compartilhando um banco de dados Firebase.

  4. A biblioteca OAuth2 do AngularFire facilita a autorização com o Facebook, GitHub, Google, Twitter, tokens e senhas.

  5. Segurança dupla. Você pode configurar suas rotas angulares para exigir autorização e configurar regras no Firebase sobre quem pode ler e gravar dados.

  6. Não há back-end. Você não precisa criar um servidor com Node e Express. A execução de seu próprio servidor pode dar muito trabalho, exigir conhecimento sobre segurança, exigir que alguém faça algo se o servidor ficar inativo etc.

  7. Rápido. Se o seu servidor estiver em San Francisco e o cliente em San Jose, tudo bem. Mas para um cliente em Bangalore, a conexão com o servidor será mais lenta. O Firebase é implantado em todo o mundo para conexões rápidas em qualquer lugar.

Thomas David Kehoe
fonte
o que é o Fireloop ?, essa é uma maneira de escrever uma API de descanso com a base do fogo?
precisa saber é o seguinte
na verdade, eu acho angularfire incrível, existe alguma maneira de você pegá-lo e passá-lo para usar com seu próprio sistema de banco de dados ?, nesse caso com o Mongo, por isso seria incrível você poder usar três ligações de maneira de dados e também para poder atualizar instantaneamente os seus valores
Kross
Gosto da sua última parte do comentário: "O Firebase é implantado em todo o mundo para conexões rápidas em todos os lugares".
Lester
13

Na minha experiência, trabalhar com o Firebase é uma enorme vantagem se você estiver tentando fazer um aplicativo de gerenciamento de usuários, banco de dados e sistema de mensagens, pois todos esses recursos já estão bem integrados.

Como outros já disseram, se você está focado apenas no aspecto de banco de dados / consulta, atenha-se ao mongo.

Nam Kim
fonte
13

Firebase é um conjunto de recursos.

  • Banco de Dados em Tempo Real
  • Hospedagem
  • Autenticação
  • Armazenamento
  • Mensagens na nuvem
  • Configuração remota
  • Laboratório de teste
  • Relatório de falhas
  • Notificações
  • Indexação de aplicativos
  • Links dinâmicos
  • Convida
  • AdWords
  • AdMob

Acredito que você esteja tentando comparar o Firebase Realtime Database com o Mongo DB. O Firebase Realtime Database armazena dados no formato JSON e sincroniza com todas as atualizações dos dados para todos os clientes que os ouvem. Ele abstrai toda a complexidade necessária para configurar e dimensionar qualquer banco de dados. Não recomendo o firebase onde você tem muitos cenários complexos em que a agregação de dados é necessária (consultas que precisam do tipo de soma / média). Embora isso seja possível recentemente usando as funções do Firebase. A modelagem de dados no Firebase é complicada. Mas é a melhor maneira de começar instantaneamente. MongoDB é um banco de dados. Isso oferece muitos recursos poderosos. Mas o MongoDB, quando instalado em qualquer plataforma, precisa ser gerenciado por você.

Quando tento escolher entre Firebase ou MongoDB (ou qualquer DB). Eu tento responder o seguinte.

  1. Existem muitas consultas de agregação que são executadas (como no caso da ferramenta de relatório ou ferramenta de BI). Se sim, não vá para o Firebase
  2. Preciso realizar muitas transações. (Se sim, então eu não gostaria de usar o firebase) (as transações são um pouco fáceis depois da introdução das funções, mas isso também é uma sobrecarga se muitas transações precisam ser mantidas)
  3. Qual linha do tempo eu tenho para colocar as coisas em funcionamento (o Firebase é muito fácil de configurar e integrar).
  4. Eu tenho experiência para ampliar o DB e solucionar problemas relacionados ao DB? (O Firebase é mais parecido com o SAAS, portanto, não é necessário se preocupar com a escalabilidade)
suvankar bose
fonte
13

O Firebase fornece alguns bons recursos, como reflexão de alterações em tempo real, fácil integração do mecanismo de autenticação e muitos outros recursos internos para o rápido desenvolvimento da Web. Firebase, realmente torna o desenvolvimento da Web tão simples que nunca existe. O banco de dados Firebase é um fork do MongoDB .

Qual é a vantagem de usar o Firebase sobre o MongoDB?

Você pode tirar proveito de todos os recursos internos do Firebase sobre MongoDB.

mnhmilu
fonte