¿Cuáles son las diferencias fundamentales entre Firebase y Express?

En este momento estoy explorando cómo escribir una API usando Express y MongoDB. También estoy usando Angular para hacer mis rutas y vistas. Sé que Firebase y AngularFire pueden hacerlo así que puedo omitir el uso de Express todos juntos (o eso creo) y tener mi aplicación en tiempo real.

En este artículo de Chris Esplin , afirma que no podía renunciar a Express porque lo necesitaba para escribir promesas en lugar de devoluciones de llamada para un código más limpio al usar su paquete npm ‘Quiver-Invoice’ con Firebase, Stripe y el servicio Mandrill de MailChimp.

En esta publicación SO, el póster dice que necesitan usar Express & Node para poder enviar correos electrónicos. Supongo que esto es imposible si uno usa solo Firebase con Angular.

También he visto a personas hablar sobre diferencias de autenticación y seguridad entre los dos aquí https://groups.google.com/forum/#!topic/firebase-talk/WF9gf–A3Qo

Pregunta (s)

Entonces, ¿cuáles son las diferencias fundamentales entre Firebase y Express?

  • ¿Es posible crear una API alrededor de Firebase como puedo hacer en Express + MongoDB?

  • ¿Es posible (o será posible pronto) personalizar el servidor Firebase como se puede con Express?

Firebase es un backend-as-a-a-service, con la característica principal que es la capacidad de base de datos con eventos en tiempo real. Express es un framework web para Node.js. Comparando los dos es manzanas con naranjas.

Puede hacer lo que quiera con Express / Node, pero debe administrar sus propios servidores y escribir la funcionalidad de back-end. Con un BaaS como Firebase, puede evitar la administración de servidores. Incluso puede mezclar los dos y usar Firebase para algunas cosas y sus propios servidores para otras. Esto es lo que hace Flawk.

Si está buscando principalmente una forma de realizar eventos en tiempo real con Express, podría usar algo de bajo nivel como Shoe para enviar eventos a los clientes, o algo de alto nivel como LiveResource que permite sincronizar objetos RESTy.