En este artículo vamos a explicar Firebase con el fin de completar la suite tecnológica que nos proporciona Google para trabajar con Angular.

Tendremos Angular como frontEnd combinando con Angular Material para definir las interfaces junto a Firebase como lo que se conoce bajo el nombre de Backed as a Service (BaaS).

En este artículo por el momento aún no trabajaremos con Firebase, ya que en él haremos una vista de pajaro sobre la plataforma de Firebase. Que posteriormente nos permitirá el poder conocer mejor a Firebase y lo que nos ofrece para cuando tengamos una necesidad implementarla en nuestro proyecto, es decir, sabremos que pizas coger para realizar lo que necesitamos en dicha plataforma.

Limitaciones de backEnd

El backEnd es el factor determinante que suele limitar muchos proyectos o incluso muchas ideas prometedoras no llegan a realizarse debido a multitud de factores, entre los que se encuentran:

  • Factores como el conocimiento de dicha tecnología (Spring Boot, PHP, Phyton, JavaScript, etc.) y de seleccionar/escoger a la que creemos que será la más adecuada para nuestro proyecto.
  • Factores el coste económico junto con el tiempo de desarrollo, debido a lo lento y complejo que es realizar un backend tradicional. Y que el software funcione con ciertas garantías (requiere realizar testing, seleccionar arquitectura, etc). El resultado de realizar un backend tradicional es un proceso lento que dependiendo de las necesidades puede tardar muchos meses en desarrollarse 6, 12, 24, 36…

Es decir, el backEnd es un factor que limita nuestras pretensiones.

Cuando queremos desarrollar aplicaciones de una forma rápida que sean escalables y accesibles de forma rápida una alternativa a tener en cuenta es Firebase.

¿Qué es Firebase?

Firebase es plataform conocida como cloud platform (la plataforma de nube) que nos ofrece Google. Esta platform que contiene todo lo necesario referente al BackEnd para poder desarrollar de aplicaciones web y aplicaciones móviles (iOs y Android).

En nuestro caso, al desarrollar con Angular para web, Firebase nos ofrece crear aplicaciones de forma rápida  y dinámica a través de una serie de servicios que nos ofrece Google y así, solo tener que preocuparnos del lado cliente Front End.

Cuando hablamos de cloud platform estamos hablando de una serie de servicios que se encuentran “alojados en la nube”. Con ello, nos referimos a productos que tienen componentes de backend que Google mantiene y opera en su totalidad. Y a los cuales nos conectamos mediante a la API que nos proporciona Firebase interactuando para poder acceder a los servicios de Google , sin necesidad de realizar una gran configuración sobre nuestra aplicación y el servicio. Por lo tanto, si estamos utilizando una de las opciones de la base de datos de Firebase, normalmente escribimos código para consultar la base de datos sobre nuestra aplicación cliente.

Un poco de historia sobre Firebase

En 2011, antes Firebase fuera comprada por Google y también de que fuera Firebase, “Firebase” como tal pertenecía a una startup llamada Envolve.

Esta startup (Envolve) se hizo popular debido a que proporcionaba una API a los desarrolladores que ofrecía la integración de un chat en línea en los sitios web. Pero mucha gente utilizaba este servicio de mensajería para transferir datos de aplicaciones que eran mucho más que mensajes de chat, por ejemplo el estado de un juego a tiempo real entre sus usuarios.

En aquel entonces el futuro “Firebase” no era más que una base de datos (BBDD) a tiempo real, orientada sobre documento (es decir NoSQL / NoRel).

Pero James Tampling y Andrew Lee (fundadores de Envolve) percatándose de que los desarrolladores utilizaban su servicio de mensajería (chat) para otros usos, decidieron dividir Firebase en 2 partes: el sistema de chat y la arquitectura en tiempo real. Y fue en 2012,  gracias a una recaudación de 1,1 millones de dólares de invesiones privadas cuando se creó Firebase como tal, como una empresa independiente que proporcionaba Backend-as-a-Service con funcionalidad en tiempo real.

Firebase es la plataforma de desarrollo de aplicaciones móviles de Google que le ayuda a crear, mejorar y hacer crecer su aplicación.

2013, la compañía seguía creciendo hasta conseguir una recaudación de 5,6 millones de dólares. Y ya en 2014, con dicha recaudación lanzó dos productos: Firebase Hosting y Firebase Authentication posicionandose ya como una empresa que ofrece backend como servicio.

Ese mismo año en 2014, Firebase fue comprada por Google la que convirtió en una plataforma completa de servicios. Y más tarde, durante las conferencias anuales de Google I/O (evento anual donde Google presenta sus novedades: productos, software, etc.) empezaron a presentar/hablar de nuevos servicios que se incluian en Firebase como son: FireStore, Cloud Platform, etc.

Google además absorbió al equipo de Divshot para que pase a formar parte de su equipo Firebase. Provocaron que evolucionará muy rápidamente hasta convertir en el gigante multifuncional que es hoy en día.

¿Qué es un BaaS?

Hasta ahora hemos hablado de BaaS pero no hemos explicado que es. Vamos a verlo al detalle:

BaaS → o Backend-as-a-Service es un servicio que nos proporciona a los desarrolladores (de web y de mobile) un modelo que permite a los desarrolladores utilizar una serie de servicios permitiendo prescindir totalmente de una API personalizada.

Por tanto, un Backend as a Service nos proporciona una gran cantidad de herramientas y servicios para ayudarnos a desarrollar aplicaciones de alta calidad, sin necesidad de tener que desarrollar un backend (usaremos el de Google).

Backend-as-a-Service (BaaS) nos permitirá prescindir de un backEnd al completo

BaaS no es nada más y nada menos que una infraestructura de software que es vendida como un servicio. Es decir si nosotros hacemos un software (en este caso el que hace el software y por tanto el propietario de dicho software es Google) y en vez de vender dicho software a 25K $ ofrece servicios a un precio que dependerá del uso de dicho software vendiéndolo por tanto en forma de servicio por ejemplo a 100 $.

Servicios que nos ofrece Firebase

Que nos ofrece Firebase para poder prescindir de un backed. Algunos de los principales servicios que nos ofrece Firebase son:

  • Cloud Firestore: Bases de datos no relacionados (No SQL) con escalamiento automático.

  • Cloud Functions: es un framework sin servidores que te permite ejecutar de forma automática el código de backend en respuesta a las solicitudes HTTPS. Tu código JavaScript o TypeScript se almacena en la nube de Google y se ejecuta en un entorno administrado. No necesitas administrar ni escalar tus propios servidores.

  • Autentifications: Nos ofrece soluciones para autentificación para iniciar sesión con correo electrónico, autenticación telefónica, acceso mediante redes sociales (Facebook, Twitter, etc), Google, GitHub, etc.

  • Hosting: Firebase Hosting proporciona hosting seguro donde publicar nuestras aplicaciones de forma rápida para las aplicaciones web, el contenido dinámico/estático, y micro servicios.

  • Cloud Storage: se diseñó para ayudarnos a almacenar y procesar con rapidez y facilidad el contenido generado por usuarios, como fotos y videos.

  • Realtime Database: Firebase Realtime Database es una base de datos NoSQL alojada en la nube que permite almacenar y sincronizar datos entre tus usuarios en tiempo real.

  • Cloud Messaging: Notificaciones en tiempo real y envío de SMS.

  • FireStore: Bases de datos no relacionados (No SQL) con escalamiento automático.

Precios del servicio de Firebase

Firebase ofrece una versión gratuita que incluye por ejemplo 10.000 autentificaciones por mes. En caso de superar dicha cantidad de nivel de uso de uno de los servicios, autentificaciones, consultas, etc. En principio significará que tenemos una aplicación de una embergadura mediana o grande y se empezará a facturar por su uso. Os dejo el link para que veaís las tarifas una vez superado el uso gratuito mensual.

Espero que os haya servido para entender un poco más a Firebase y la gran envergadura que tiene esta plataforma de Googlea. En próximas lecciones empezaremos a trabajar con dichos servicios realizando autentificaciones, trabajando con FireStore y muchas más cosas, que nos hemos dejado en el tintero. Saludos 🙂