@David No está basado en opiniones. El OP no pregunta cuál es mejor (cuál estaría basado en una opinión) sino que solicita beneficios (si los hay) de FB sobre MongoDb. Para tener una opinión, necesitamos extraer los beneficios de ambos y los inconvenientes de ambos, y juzgar qué tecnología podría preferirse
@KirillSlatin Esta pregunta ahora se ha cerrado. Puedes leer por qué preguntas como esta no son apreciadas en la publicación del blog Gorilla vs Shark . Si bien la razón no constructiva a la que se hace referencia en este blog ya no está disponible, sigue siendo muy amplia (enumerar todas las diferencias en una respuesta es tediosa), muy basada en el tiempo (podrían agregarse características que cambian esto), y en general no es una buena apto para este sitio.
Erik A
Respuestas:
123
Firebase es un motor en tiempo real con conectividad hacia atrás. Es decir, puede crear una aplicación multiplataforma donde los clientes se suscriban a eventos sobre datos específicos y el servidor informa activamente a los clientes sobre los cambios.
La capa de datos está alojada para usted. Tenga en cuenta que es altamente escalable. Es una buena solución kickstarter. Incluyendo la gestión de autenticación
Geo-fuego. Solución de coordenadas geográficas en tiempo real.
Los inconvenientes evidentes de Firebase son:
Tienes que pagarlo tan pronto como comiences a crecer
No puede hospedar una capa de datos (si poseer datos es crítico o si desarrolla una aplicación para una subred separada)
EDITAR: aquí hay un buen artículo sobre cómo reemplazar Firebase en su aplicación con Node.js + MongoDb. Muestra cuánto trabajo tendría que hacer por su cuenta y explica, en mi humilde opinión, por qué una startup (aplicación pequeña) debería comenzar con Firebase (si se requieren actualizaciones en tiempo real para los clientes) y continuar con MongoDb (en cualquier caso, self escrito) si el proyecto sigue evolucionando
EDIT 2: después de ser adquirido por Google Firebase, ahora ofrece varias ventajas además de sus características básicas que tendrá dificultades para desarrollar por su cuenta:
Para desarrollo
Mensajería en la nube : entregue y reciba mensajes a través de plataformas de manera confiable
Manzanas y naranjas. Firebase es un back-end como servicio que contiene administración de identidad, vistas de datos en tiempo real y una base de datos de documentos. Se ejecuta en la nube.
MongoDB, por otro lado, es una base de datos completa con un rico lenguaje de consulta. En principio, se ejecuta en su propia máquina, pero hay proveedores en la nube.
Si está buscando el componente de base de datos, MongoDB es mucho más maduro y rico en funciones.
Firebase está diseñado para actualizaciones en tiempo real. Se integra fácilmente con angular. Ambas son bases de datos NoSQL. MongoDB también puede hacer esto con Angular a través de la integración Socket.io. Meteor.js también utiliza MongoDB con una conexión de socket abierta para actualizaciones en tiempo real.
MongoDB puede ejecutarse localmente o alojarse en muchos proveedores diferentes basados en la nube. Firebase, en mi opinión, es ideal para aplicaciones más pequeñas, muy rápidas de poner en funcionamiento. MongoDB es ideal para aplicaciones más grandes y robustas, la integración en tiempo real es posible pero requiere un poco más de trabajo.
Después de usar Firebase una cantidad considerable, he venido a encontrar algo.
Si tiene la intención de usarlo para aplicaciones grandes en tiempo real, no es la mejor opción. Tiene su propia amplia gama de problemas, incluido un sistema de gestión de errores incorrectos y limitaciones. Pasará un tiempo considerable tratando de comprender Firebase y sus torceduras. También es bastante fácil para un proyecto convertirse en algo monolítico que se sale de control. MongoDB es una opción mucho mejor en cuanto a backend para una aplicación grande.
Sin embargo, si necesita crear una aplicación pequeña o crear un prototipo rápidamente, Firebase es una excelente opción. Será una manera increíblemente fácil de comenzar a ejecutar.
Contestaré esta pregunta en términos de AngularFire, la biblioteca de Firebase para Angular.
Tl; dr: superpoderes. :-)
Enlace de datos de tres vías de AngularFire. Angular vincula la vista y el alcance $, es decir, lo que hacen sus usuarios en la vista se actualiza automáticamente en las variables locales, y cuando su JavaScript actualiza una variable local, la vista se actualiza automáticamente. Con Firebase, la base de datos en la nube también se actualiza automáticamente. No necesita escribir solicitudes $ http.get o $ http.put, los datos solo se actualizan.
Enlace de datos de cinco vías, y siete, nueve, etc. Hice un juego de tres en raya usando AngularFire. Dos jugadores pueden jugar juntos, con las dos vistas actualizando los dos $ scopes y la base de datos en la nube. Puedes hacer un juego con tres o más jugadores, todos compartiendo una base de datos Firebase.
La biblioteca OAuth2 de AngularFire facilita la autorización con Facebook, GitHub, Google, Twitter, tokens y contraseñas.
Doble seguridad. Puede configurar sus rutas angulares para requerir autorización, y establecer reglas en Firebase sobre quién puede leer y escribir datos.
No hay back-end. No necesita crear un servidor con Node y Express. Ejecutar su propio servidor puede ser mucho trabajo, requerir conocer la seguridad, requerir que alguien haga algo si el servidor se cae, etc.
Rápido. Si su servidor está en San Francisco y el cliente está en San José, está bien. Pero para un cliente en Bangalore, conectarse a su servidor será más lento. Firebase se implementa en todo el mundo para conexiones rápidas en todas partes.
¿Qué es Fireloop ?, ¿es esta una forma de escribir una API de descanso con Firebase?
ashishSober
En realidad, creo que Angularfire es increíble, ¿hay alguna forma de que pueda tomarlo y pasarlo para usarlo con su propio sistema de base de datos ?, en este caso con Mongo, por lo que sería sorprendente que pueda hacer uso de tres enlaces de datos y también para poder actualizar instantáneamente sus valores
Kross
Me gusta su última parte del comentario: "Firebase se implementa en todo el mundo para conexiones rápidas en todas partes".
Lester
13
En mi experiencia, trabajar con Firebase es una gran ventaja si está tratando de hacer aplicaciones de administración de usuarios, bases de datos y mensajes, ya que todas estas características ya están bien integradas.
Como otros han dicho, si solo te enfocas en el aspecto de la base de datos / consulta, quédate con mongo.
Creo que estás tratando de comparar Firebase Realtime Database con Mongo DB. Firebase Realtime Database almacena datos en formato JSON y se sincroniza con todas las actualizaciones de los datos para todos los clientes que escuchan los datos. Lo abstrae de toda la complejidad necesaria para configurar y escalar cualquier base de datos. No recomendaré Firebase donde tenga muchos escenarios complejos donde se necesita la agregación de datos (consultas que necesitan cosas de SUM / AVERAGE). Aunque esto se puede lograr recientemente utilizando las funciones de Firebase. Modelar datos en Firebase es complicado. Pero es la mejor manera de comenzar de forma instantánea. MongoDB es una base de datos. Esto le brinda muchas funciones potentes. Pero MongoDB, cuando está instalado en cualquier plataforma, necesita administrarlo usted mismo.
Cuando trato de elegir entre Firebase o MongoDB (o cualquier DB). Intento responder lo siguiente.
¿Hay muchas consultas de agregación que se ejecutan? (Como en el caso de la herramienta de informes o la herramienta de BI). Si es así, no vayas por Firebase
¿Necesito realizar muchas transacciones? (En caso afirmativo, no me gustaría ir con firebase) (aunque las operaciones son algo fáciles después de la introducción de funciones, pero eso también es una sobrecarga si se deben mantener muchas transacciones)
¿Qué línea de tiempo tengo para poner las cosas en funcionamiento? (Firebase es muy fácil de configurar e integrar).
¿Tengo experiencia para escalar la base de datos y solucionar problemas relacionados con la base de datos? (Firebase se parece más a SAAS, por lo que no debe preocuparse por la escalabilidad)
Firebase proporciona algunas buenas características, como la reflexión de cambios en tiempo real, la fácil integración del mecanismo de autenticación y muchas otras funciones integradas para un rápido desarrollo web. Firebase realmente hace que el desarrollo web sea tan simple que nunca existe. La base de datos de Firebase es una bifurcación de MongoDB .
¿Cuál es la ventaja de usar Firebase sobre MongoDB?
Puedes aprovechar todas las características integradas de Firebase sobre MongoDB.
Respuestas:
EDITAR: aquí hay un buen artículo sobre cómo reemplazar Firebase en su aplicación con Node.js + MongoDb. Muestra cuánto trabajo tendría que hacer por su cuenta y explica, en mi humilde opinión, por qué una startup (aplicación pequeña) debería comenzar con Firebase (si se requieren actualizaciones en tiempo real para los clientes) y continuar con MongoDb (en cualquier caso, self escrito) si el proyecto sigue evolucionando
EDIT 2: después de ser adquirido por Google Firebase, ahora ofrece varias ventajas además de sus características básicas que tendrá dificultades para desarrollar por su cuenta:
Para desarrollo
Para el crecimiento
fuente
Manzanas y naranjas. Firebase es un back-end como servicio que contiene administración de identidad, vistas de datos en tiempo real y una base de datos de documentos. Se ejecuta en la nube.
MongoDB, por otro lado, es una base de datos completa con un rico lenguaje de consulta. En principio, se ejecuta en su propia máquina, pero hay proveedores en la nube.
Si está buscando el componente de base de datos, MongoDB es mucho más maduro y rico en funciones.
fuente
Firebase está diseñado para actualizaciones en tiempo real. Se integra fácilmente con angular. Ambas son bases de datos NoSQL. MongoDB también puede hacer esto con Angular a través de la integración Socket.io. Meteor.js también utiliza MongoDB con una conexión de socket abierta para actualizaciones en tiempo real.
MongoDB puede ejecutarse localmente o alojarse en muchos proveedores diferentes basados en la nube. Firebase, en mi opinión, es ideal para aplicaciones más pequeñas, muy rápidas de poner en funcionamiento. MongoDB es ideal para aplicaciones más grandes y robustas, la integración en tiempo real es posible pero requiere un poco más de trabajo.
fuente
Después de usar Firebase una cantidad considerable, he venido a encontrar algo.
Si tiene la intención de usarlo para aplicaciones grandes en tiempo real, no es la mejor opción. Tiene su propia amplia gama de problemas, incluido un sistema de gestión de errores incorrectos y limitaciones. Pasará un tiempo considerable tratando de comprender Firebase y sus torceduras. También es bastante fácil para un proyecto convertirse en algo monolítico que se sale de control. MongoDB es una opción mucho mejor en cuanto a backend para una aplicación grande.
Sin embargo, si necesita crear una aplicación pequeña o crear un prototipo rápidamente, Firebase es una excelente opción. Será una manera increíblemente fácil de comenzar a ejecutar.
fuente
Contestaré esta pregunta en términos de AngularFire, la biblioteca de Firebase para Angular.
Tl; dr: superpoderes. :-)
Enlace de datos de tres vías de AngularFire. Angular vincula la vista y el alcance $, es decir, lo que hacen sus usuarios en la vista se actualiza automáticamente en las variables locales, y cuando su JavaScript actualiza una variable local, la vista se actualiza automáticamente. Con Firebase, la base de datos en la nube también se actualiza automáticamente. No necesita escribir solicitudes $ http.get o $ http.put, los datos solo se actualizan.
Enlace de datos de cinco vías, y siete, nueve, etc. Hice un juego de tres en raya usando AngularFire. Dos jugadores pueden jugar juntos, con las dos vistas actualizando los dos $ scopes y la base de datos en la nube. Puedes hacer un juego con tres o más jugadores, todos compartiendo una base de datos Firebase.
La biblioteca OAuth2 de AngularFire facilita la autorización con Facebook, GitHub, Google, Twitter, tokens y contraseñas.
Doble seguridad. Puede configurar sus rutas angulares para requerir autorización, y establecer reglas en Firebase sobre quién puede leer y escribir datos.
No hay back-end. No necesita crear un servidor con Node y Express. Ejecutar su propio servidor puede ser mucho trabajo, requerir conocer la seguridad, requerir que alguien haga algo si el servidor se cae, etc.
Rápido. Si su servidor está en San Francisco y el cliente está en San José, está bien. Pero para un cliente en Bangalore, conectarse a su servidor será más lento. Firebase se implementa en todo el mundo para conexiones rápidas en todas partes.
fuente
En mi experiencia, trabajar con Firebase es una gran ventaja si está tratando de hacer aplicaciones de administración de usuarios, bases de datos y mensajes, ya que todas estas características ya están bien integradas.
Como otros han dicho, si solo te enfocas en el aspecto de la base de datos / consulta, quédate con mongo.
fuente
Firebase es un conjunto de características.
Creo que estás tratando de comparar Firebase Realtime Database con Mongo DB. Firebase Realtime Database almacena datos en formato JSON y se sincroniza con todas las actualizaciones de los datos para todos los clientes que escuchan los datos. Lo abstrae de toda la complejidad necesaria para configurar y escalar cualquier base de datos. No recomendaré Firebase donde tenga muchos escenarios complejos donde se necesita la agregación de datos (consultas que necesitan cosas de SUM / AVERAGE). Aunque esto se puede lograr recientemente utilizando las funciones de Firebase. Modelar datos en Firebase es complicado. Pero es la mejor manera de comenzar de forma instantánea. MongoDB es una base de datos. Esto le brinda muchas funciones potentes. Pero MongoDB, cuando está instalado en cualquier plataforma, necesita administrarlo usted mismo.
Cuando trato de elegir entre Firebase o MongoDB (o cualquier DB). Intento responder lo siguiente.
fuente
Firebase proporciona algunas buenas características, como la reflexión de cambios en tiempo real, la fácil integración del mecanismo de autenticación y muchas otras funciones integradas para un rápido desarrollo web. Firebase realmente hace que el desarrollo web sea tan simple que nunca existe. La base de datos de Firebase es una bifurcación de MongoDB .
Puedes aprovechar todas las características integradas de Firebase sobre MongoDB.
fuente