intive Argentina Blog

La evolución de Firebase

Si bien nació como el «DropBox» de las aplicaciones, Firebase ha evolucionado hasta convertirse en una plataforma que mejoró sensiblemente desde que Google la compró en 2014 y luego la potenció aún más con la adquisición del equipo de Divshot.

En la etapa pre Google, Firebase se centraba en almacenar los datos de nuestras aplicaciones para que fueran accesibles y fácilmente consumidas por los usuarios. Ahora, es mucho más que eso.

 

¿Cómo configurar un proyecto en Firebase?

Añadir Firebase a la aplicación que estemos desarrollando no es complejo. Debemos seguir estos pasos:

  1. Crear un proyecto en la consola Firebase. Si ya tenemos un proyecto existente de Google asociado a la app móvil en desarrollo, debemos hacer clic en Importar Google Project .
  2. Hacer clic en Añadir Firebase y seguir los pasos de instalación. Si vamos a importar un proyecto de Google existente, puede suceder de forma automática y sólo podremos descargar el archivo de configuración.
  3. Cuando se nos solicite, tendremos que introducir el nombre del paquete de la aplicación. Es importante hacerlo dado que sólo se puede ajustar cuando agregamos una app a nuestro proyecto Firebase.
  4. Al final, podremos descargar un archivo google-services.json. Nos será posible descargar este archivo nuevo en cualquier momento.
  5. Si no lo hemos hecho aún, copiaremos esto en la carpeta del módulo del proyecto, que por lo general se llamará app/.

 

¿Cómo configurar Firebase en nuestra app?

En primer lugar, debemos agregar los google-services en el archivo build.gradle a nivel root del proyecto:

Luego, en el módulo de archivo Gradle (por lo general el app/build.gradle), tendremos que sumar la línea apply plugin en la parte inferior del archivo para activar el plugin Gradle:

También tendremos que agregar las dependencias de los SDK Firebase que deseemos utilizar. Lo ideal sería comenzar con com.google.firebase:firebase-core, lo que nos proporciona una funcionalidad Firebase Analytics. Les dejamos para que puedan ver ustedes mismos la lista de bibliotecas disponibles.

Conclusión

Con todo configurado, estaremos listos para utilizar esta plataforma que anteriormente mutó de una base de datos en la nube a una plataforma multiservicio. Ofrece hosting de archivos, generación de notificaciones, autorizaciones de logueo, etc. Lo que devino de Firebase después de que Google la compró es una herramienta mucho más completa de la que disponer a la hora de programar. Google nos ofrece probar Firebase durante 40 minutos sobre un desarrollo ya trabajado para que podamos conocer más y experimentar sus utilidades. En este link podrán hacerlo. Happy coding!

Diego Blajackis

Es desarrollador en intive – FDV desde 2012 e integra la Brigada Android. Es Técnico Superior en Análisis de Sistemas egresado del Instituto ESBA de Villa Urquiza.  Fan de Star Wars, siempre se pasea por los pasillos de la empresa con una sonrisa en la cara.

2 comentarios

  • Hace poco estuve jugando con lo que parece ser el caballito de batalla de la propuesta de Google para el uso de esta API. Real time database, en conjunto con push notifications. Si se que todos estamos pensando en chats XD

    Si bien la API es fácil de integrar. Cuando uno empieza a tener una lógica de negocio ligeramente rebuscada se empieza a encontrar cuellos de botella que rompen con la idea de lo que está API propone.
    La pregunta principal es donde uno debe poner dicha lógica y como evitar los tipicos problemas de escalamiento.

    Todo esto me llevó a tener que agregar una capa intermedia (aunque creo que va a tener que ser varias) para el manejo de objetos como imágenes, videos, etc.
    Sobre todo tener especial cuidado para la política de reintentos que si bien la API provee de un modo «offline» no tiene en cuenta el error handling fuera del de «desconexión» (que tiene sentido pero sigue siendo algo muy importante a tener en cuenta cuando uno quiere integrar algo robusto y responsive)

    Además de que agregar asíncronia de datos entre clientes que consumen la misma base tiende a genera exceso de consultas o un excesivo uso de KVO.

    Por supuesto todo depende de cómo integres la solución a estas necesidades.(me refiero a lograr cosas como bloqueo de usuarios, limpiar historial por usuario, desconexión temporal o forzadas por usuario, push notifications, entre muchas otros casos de uso normales y necesarios en chats de hoy en día)

    Resumen: me pareció que es una API ideal para obtener el efecto de base de datos en tiempo real, pero todo lo demás sigue siendo muy custom y necesita de un buen diseño para lograr mantener y escalar lo que sea que implementes.

    Ir con soluciones intermedias puede llegar a ser un suicidio de neuronas y requerir de continuas vacaciones entre milestones. 😆

    Muy buena nota. Gracias!

    • Me encontré con los mismos problemas cuando probé firebase (Y otros que han probado servicios similares me lo confirmaron).
      Es muy lindo para una POC, pero cuando necesitas lógicas más complejas no alcanza.