Según su propia definición, Firebase es un conjunto de herramientas orientadas a la creación de aplicaciones de alta calidad, al crecimiento de los usuarios y a ganar más dinero. Personalmente describo la plataforma como una suite de diferentes aplicaciones que nos harán más fácil el desarrollo de nuestra aplicación. He aquí un vídeo del canal de Firebase que explica el servicio:

¿Qué servicios nos ofrece?

Veamos, uno por uno, los servicios más destacados que nos ofrece Firebase para trabajar de una manera más sencilla en nuestra aplicación.

Base de datos Realtime

Con la base en tiempo real de Firebase podrás guardar todos los datos que requiera tu aplicación. Se lleva muy bien con React y su patrón reactivo que permite actualizar los datos en los componentes automágicamente. Los datos se almacenan en formato JSON y se pueden agregar reglas para permitir requests con token o solo desde una URL por ejemplo.

Autenticación

Es un servicio que nos simplifica el inicio de sesión y la gestión de la misma en nuestra aplicación. Si la usamos en aplicaciones web es extremadamente fácil de configurar, sobretodo si usamos el proveedor de Google, aun así si usamos otros de los disponibles (Correo/Contraseña, Teléfono, Facebook, Twitter, GitHub, Anónimo) también es muy fácil, sólo es un paso más en el caso de las redes.

Almacenamiento

Este serivicio es muy bueno para aplicaciones que requieran guardar archivos del usuario. También nos sirve si queremos subir estáticos ya que existe un botón desde la interfaz o podemos programar algo. En mi caso lo he usado para subir imágenes desde un formulario y no he tenido ningún tipo de problemas. Como la base de datos, tiene reglas que podemos configurar.

Hosting

Este servicio es uno de mis favoritos. Con una colección de estáticos (o de archivos que han pasado ya el proceso de build) podemos subir una aplicación y esta automágicamente contará con SSL y HTTP2. Si tenemos una app con Angular o Firebase podemos hacer un build desde nuestros ordenadores y subir estos archivos generados y nos funcionarán sin problemas. Si necesitamos un Backend tendríamos que subirlo a otro lugar o hacer uso de las Cloud Functions.

También cabe destacar que al hacer deploy de tu aplicación esta hará parte del CDN de Firebase y se replicará en servidores a lo largo de todo el mundo, disminuyendo el tiempo de transferencia desde estos a el ordenador de tu visitante.

¿Quieres saber cómo puedes crear una API usando las Cloud Functions y la base de datos? No te pierdas mi artículo

Cloud Functions(BETA)

Ya he hablado de esto en mi post anterior, si aún no lo has visto haremos un repaso también de este servicio. Cloud Functions es un producto bastante reciente de Firebase que tiene como objetivo la transformación de nuestro código del backend en pequeñas piezas del mismo(funciones). Estas funciones son creadas en NodeJS y se suben a la vez que hacemos deploy. Al crearse generan una URL a la que podemos llamar desde AJAX para que se ejecute el código pertinente. Firebase nos provee de unos triggers para comunicarnos con ciertas funciones de sus productos así como un trigger de HTTP pero si lo piensas al ser un archivo común de Node podemos añadir cualquier módulo y hacer cosas increíbles.

Laboratorio de tests para Android

Los desarrolladores de Android se habrán planteado la encrucijada que produce muchas veces a la hora de probar una aplicación. Existen múltiples modelos de dispositivos con diferentes versiones y diseño del OS, así como diferentes sensores. Este sericio nos ofrece la posibilidad de probar los tests de nuestra aplicación en los entornos que configuremos(Dispositivo, versión del OS…).

Informes sobre fallos

Con esta utilidad podemos detectar los errores que aparezcan en nuestras aplicaciones de iOS y Android así como poder erradicarlos a tiempo. Esta herramienta próximamente dará paso a Crashlytics de Fabric, que se integrará como una herramienta más. A día de hoy podemos usar ambos pero mi recomendación es que uses Crashlytics pues es la herramienta que se instaurará en el futuro.

Monitoreo de rendimiento

Esta herramienta te ayudará a medir el rendmiento de tu aplicación y el tiempo que los usuarios pasan durante los diferentes procesos de la misma con el fin de que puedas detectar problemas en el tiempo de carga y prevenirlos antes de que causen cualquier otro tipo de problema o que los usuarios desinstalen tu aplicación.

Notificaciones

Este servicio, como su nombre nos indica, nos permitirá gestionar el envío de notificaciones a nuestros usuarios con la diferencia de que estas podrán ser programadas acorde a diferentes parámetros.

Configuración remota

Este añadido nos permitirá básicamente modificar el comportamiento y la apariencia de nuestra aplicación sin que nuestros usuarios tengan que tocar nada.

Enlaces dinámicos

Con los enlaces dinámicos podremos asegurarnos que a pesar de las redirecciones que supone el proceso de instalar una aplicación desde un anuncio, lleguemos a la vista deseada, ganando así una experiencia que el usuario agradecerá.

Admob

Mediante este servicio podremos colocar publicidad en distintos lados de nuestra aplicación. Muchas aplicaciones gratuitas como pueden ser algunos juegos llevan implementado este sistema de publicidad o similares.

¿Puedo usar Firebase si mi aplicación está hecha con…?

Firebase ha estado disponible principalmente para aplicaciones realizadas con JavaScript(tanto en el Frontend como con Node) así como para desarrollar aplicaciones de iOS(Swift y Objective C) y Android(Java). Aun así, el SDK de Firebase está disponible también para Python y aplicaciones Java. Hoy en día también podemos usarlo en plataformas como C++ y Unity. He aquí una lista de las funciones ya descritas y su compatibilidad con las distintas plataformas ofrecidas:

Imagen 12 en ¿Qué es Firebase de Google?

¿Cuánto cuesta usar Firebase?

En Firebase disponemos de varios planes: uno gratuito, uno fijo y uno de pago según servicios consumidos, como los servidores cloud. Te recomiendo que empiezes con el plan Spark que es como se le denomina al gratuito y una vez necesites más funciones te pases al fijo(Flame). Si eres una startup quizás tu opción este entre esta úiltima y el plan según servicios(Blaze).

Imagen 13 en ¿Qué es Firebase de Google?

Conclusiones finales

Un placer haberte realizado una visita por todos los servicios de Firebase y algunas otras características. Si te quedaron dudas o has tenido algún problema para empezar a trabajar con esta suite de aplicaciones no dudes dejar un comentario para que pueda ayudarte. Por aquí tienes un link de documentación por cada servicio.