¿Que es Firebase?

firebase google, google firebase

Firebase de Google

Firebase es un backend de Google de servicios en la nube, como una base de datos en tiempo real que proporciona una API que permite a los desarrolladores almacenar y sincronizar los datos a través de múltiples clientes.

Firebase Google Explicado

Firebase Google es básicamente un backend en tiempo real para una app.

Todo aquel que ha desarrollado una app se ha visto con el problema de que si quería compartir algún dato entre apps y si esas apps encima fuesen en diferentes plataformas (IOS, Android, Windows Phone) pues se veía abocado sí o sí a tener que montarse el propio servidor para que de una base de datos y que todos los datos de las apps tirasen de esa base de datos para tenerla que sincronizar todo eso.

Ya sea PHP, lo que sea, pero había que crear algo para que pudiese conectar todas esas diferentes apps.

Aquí entra Firebase. Y si la app fue desarrollada en Flutter, mucho mejor (y más sencillo).

Tiempo Real

Firebase Google lo que viene a sustituir a que una persona no tenga que crear nada, sino usar este servicio de Google para potenciar una app y compartir datos en tiempo real.

Crear una App no es una Estructura Compleja

Así que crear una app no requiere una infraestructura compleja. Ya no hay que pensar en qué se tiene que montar, la máquina que hay que montar, el sistema de base de datos, las APIs que hay que hacer para acceder a esa base de datos, etc.

Fullstack

El full stack de un backend para compartir datos dentro de una app, simplemente está la base de datos (sea mysql, lo que se quiera), eso está montado en un servidor que se encargará de gestionar todas las llamadas desde esa base de datos y ese servidor obviamente tiene que tener una capa de autenticación que permita a los usuarios acceder de forma segura a esos datos y que no cualquier pueda acceder a los datos de otra persona y todo eso Firebase Google lo que le otorga es una API para que los clientes y los usuarios finales, las app que creamos puedan acceder a esta infraestructura de una forma fácil y sencilla y tener que pararnos a pensar qué hay que montar en la base de datos, que cosas en el servidor, etc.

Por eso Firebase Google dice que el fullstack nunca ha sido tan simple. Se pueden tener múltiples bases de datos, múltiples apps, y múltiples servidores que no controlamos. Solamente se hacen llamadas a la API de Firebase Google y está autónomamente se conecta entre todas las bases de datos y nos permite acceder a la base de datos en la nube, por lo que tampoco lo ha sido al cliente tan fácil el desarrollar como en este caso. Simplemente tendremos llamadas simples que nos permiten «Setear» algún campo de la base de dato y obtener algún dato de la base de datos y tienen SDK para web, IOS, android, múltiples SDK que nos permiten que la app sea compatible con cualquier plataforma.

Al Usuario No le Importa el Backend

Así, al cabo al usuario no le importa el backend. El usuario lo que quiere es que su app sea rápida y sea potente. Le da igual que esté hecha en JS, que tenga IOS, que lo que sea. Lo que le importa es que la app vaya rápida y vaya bien. No le importa en qué está hecha.

Al usuario lo que le importa es la velocidad, que tenga funcionamiento offline, que sea multiplataforma y que su autenticación sea sencilla, que no sea un método complicado ni tedioso.

Por ello Firebase Google nació como el backend en tiempo real para una App y lo que te da Firebase Google es la base de datos con un sistema de autenticación, una capa de seguridad extra (usa SSL) y da además el hosting para alojar todo ese sistema.

Por lo que el servidor «pasará a la historia». No habrá que preocuparse de montar un servidor propio, porque Firebase Google te permite usar el servidor de ellos para manejar la base de datos.

Lo más importante para el lado del cliente, es que puede funcionar tanto en HTML como Javascript, como IOS, como Android.

Tenemos por un lado la base de datos que es una base de datos en la nube, una base de datos de almacenamiento que NoSQL, como lo puede ser MongoDB y lo que te devuelve las consultas a su API restful son JSON. Es decir, tiene un par de claves de valor.

Y es tan fácil como conectarse a una URL que te da ellos, con la API simplemente y depende de la consulta que se quiera hacer, pues devuelve los datos en una tabla o lo que se quiera y simplemente lo que te devuelve es un JSON, clave valor, clave valor como si fuera MongoDB.

Y lo mas importante es que los datos son en tiempo real. Si un dato es actualizado en Firebase Google, se envía automáticamente a cada cliente que este sincronizado. Utiliza notificaciones push para que las apps en tiempo real, si un usuario cambia algo que le afecte a otro usuario, ese otro usuario le va a llegar la actualización en background en su móvil de la base de datos. Es decir, se está completamente actualizado.

SDKs

Los SDKs están en HTML5, Javascript, IOS y en Android nativos y para almacenar datos es tan simple como, por ejemplo, en Javascript vemos que se cogemos la referencia al objeto de Firebase Google y simplemente «seteamos» el valor. Set y lo que queramos. Todas las cosas que queramos. En Swift para IOS lo mismo. Se coge la referencia al objeto en firebase y seteamos el valor (set value y lo que se quiera…)

En esta doble línea tendríamos configurada la base de datos y ya escribiendo un valor en esa base de datos, sólo con doble clic.

Si queremos sincronizar los valores, es decir, que nos avisen cuando la base de datos está cambiando constantemente, si alguien ha cambiado algo que nos afecte a nosotros, por ejemplo en Java, en Android, pues creamos el método que nos diga cuando cambia algo, simplemente ponemos «listening», que cuando haga cambio se lanza. En swift, pues lo mismo, es un evento que se lanza cuando hay algun cambio en la base datos y en javascript es lo mismo, un método OM que se lanza cuando hay un cambio en Firebase Google. Tan simple como eso.

Funcionamiento Offline

En este caso ya todo es organizado internamente. Es decir no hay que preocuparse de tener una caché propia para ver si hay conexión a internet o no hay conexión. Simplemente usando el método este de SET, automáticamente si tiene conexión lo persisten en la base de datos. Si no tiene conexión, se crea internamente la caché, para cuando se tenga conexión lo persista de inmediato.

Esto viene a cubrir la necesidad de que ocurre cuando se atraviesa una zona sin cobertura. Por ejemplo: el cliente de Firebase almacena en la cache local los datos. Cuando el usuario pierde la cobertura, la app sigue funcionando como se espera, gracias a esta cache local.

¿Pero qué ocurre cuando es un largo tiempo? es decir en medio de un puente. Puede ser un trayecto en avión. Y son 3 horas. Entonces el móvil almacena los datos en una cache de mayor tiempo y la app sigue funcionando, incluso si se reinicia. Se puede apagar el móvil y reiniciar, que la cache se persiste en una variable en un archivo local que se recupera al reiniciar el móvil

¿Y cómo se hace esto? Pues en una zona de dia para crear la caché, simplemente hay que decirle a Firebase que queremos activar la persistencia offline, es decir, es una línea que decirnos caché persistencia true y ahí está. Automáticamente crea la caché, la menja, etc. No hay que preocuparse. Y en swift es lo mismo. Ponemos la persistencia habilitar y listo.

Utilidad de Firebase Google

  1. Sincronizar datos: ¿Quién no ha soñado con poder sincronizar los datos de una app entre todos los usuarios de forma fácil, rápida y sencilla?
  2. Integración de Servidores: ¿Quién no ha sufrido dolor al tener que picar el mismo un backend para poder tener una base de datos centralizada para la app, conllevando a crear todos los web services necesarios?
  3. Seguridad: ¿Quién no ha pensado en el tema de la seguridad de cada uno de esos web services? (Porque no creemos que se hayan creado esos backends con webservices sin poner una capa de seguridad).
  4. Medir y Cuantificar: Cuantificando la información se pueden medir datos, presentar informes, tomar decisiones. Hacer negocios.

Firebase Google da soluciones a todas estas preguntas y facilita en demasía la sincronización entre los datos de usuarios de tu app.

Servicios de Firebase Google

  • Analytics

    Firebase Analytics es una herramienta de estadísticas y análisis que permite

    • Informes ilimitados de hasta 500 tipos de eventos, cada uno con hasta 25 atributos.
    • Un panel de control para ver el comportamiento del usuario y el rendimiento de las campaña entre redes.
    • Una segmentación demográfica, incluyendo edad, género, y la ubicación.
    • Exportar datos en bruto a BigQuery para consultas personalizadas.
    • Al hacerse partner de Firebase Analytics el usuario tiene acceso a una plataforma de publicidad móvil, para medir y optimizar el rendimiento de campañas en apps.
  • Desarrollo

    Construir mejores aplicaciones. Ahorrar tiempo en el desarrollo crucial y mantener una app en un alto estandar y libre de errores o bugs.

    • Mensajería en la nube: Entregar y recibir mensajes a través de plataformas de forma fiable.
    • Autenticación: Aminorar problemas de seguridad, con un mejor sistema de autenticación.
    • Base de datos en tiempo real: Almacenar datos e información de aplicaciones en tiempo real.
    • Almacenamiento: Almacenar archivos con facilidad.
    • Hosting: Hosting web mejor y más rápido.
    • Configuración remota: Personalizar la app sobre la marcha.
    • Laboratorio de pruebas: Formato para probar y testear la app.
    • Informes de accidente: Mantener la app en forma estable.
  • Crecer

Captar a los usuarios correctos en el momento correcto. Tomar las mejores decisiones para el crecimiento.

  • Notificaciones: Interactuar con los usuarios en el momento justo.
  • Indexación de la App: Dirigir el tráfico de búsqueda orgánica para su aplicación.
  • Links dinámicos: Enviar a los usuarios al lugar adecuado dentro de la app.
  • Invitaciones: Persuadir a los usuarios a compartir la app.
  • AdWords: Captar nuevos clientes o usuarios con el poder de Google AdWords.
  • Ganar Dinero

Ganar dinero por mostrar anuncios atractivos a una audiencia global y/o segmentada.

  • AdMob: Software de Google que permite a los dueños de apps, obtener buenos beneficios económicos a través de anuncios.

Links de Interés

Google API Console