USANDO FIREBASE CLOUD FUNCTIONS CON EL HOSTING

Juan Guillermo Gómez Torres
2 min readFeb 18, 2019
Resultado de imagen para firebase cloud functions
Firebase Cloud Functions

Firebase es un BaaS (Backend as a Service) el cual nos brinda los servicios más comunes al crear una aplicación móvil o web, servicios como creación y autenticación de usuarios, base de datos, almacenamiento, analíticas, gestión de errores, notificaciones, entre otros. Nos brinda más de 15 servicios con las mejores prácticas, la cual nos reduce el tiempo de desarrollo de una forma considerable.

Firebase también nos brinda una capacidad de cómputo que no mantenemos, entornos donde desplegamos nuestra lógica de negocio o componentes divididos o representados como funciones (Faas), que se pueden ejecutar con una petición HTTP o por eventos de otros servicios, ejemplo cuando se sube un archivo al almacenamiento o cuando se agrega un nuevo documento a una colección en la base de datos o cuando se crea un usuario entre otros. Este servicio se llama “firebase cloud functions”.

Firebase hosting permite usar las cloud functions para procesamiento al lado del servidor. Esto permite que puedas generar contenido dinámico para tu sitio alojado en el hosting de firebase. Además puedes hacer:

  • Pre-render de tus SPA (Single Page Application) para mejorar el SEO: esto permite crear dinámicos tag de ‘meta’ que mejoran el SEO en redes sociales o buscadores.
  • Brindar contenido dinámico: No solo puedes brindar contenido estático, también es posible a partir una URL llamar una función que consulte algunos datos o los procese y con ello brindar un contenido dinámico a las páginas

Como lo haces?? Primero creas una función, ejemplo:

Ahora agregamos una configuración de rewrite en el archivo firebase.json

Desplegamos la función y la aplicación web a firebase y probamos con las URL

https://your-firebase-project-id.firebaseapp.com/post?idPost=ID_POST

Veremos que nos muestra una página con el contenido HTML definido en la función.

Además para mejorar el rendimiento al momento de renderizar la página podemos usar el caché de HTTP tanto el de los CDNs (Content Delivery Network) como el del browser. Esto lo puedes hacer de la siguiente forma:

En esta línea estamos modificando el cache, asignado un tiempo de caché al browser de 5 minutos por medio del max-age y un tiempo de caché al CDN de 10 minutos por medio del s-maxage.

Hay que aprender muy bien cómo se comportan las “cloud functions” y realizar un seguimiento adecuado para no tener altos costos. Las arquitecturas serverless son las más adecuadas al momento de construir aplicaciones que deseamos agreguen valor al usuario en corto tiempo.

--

--

Juan Guillermo Gómez Torres

Tech Lead in Wordbox. @GDGCali Founder. @DevHackCali Founder. Firebase & GCPcloud & Kotlin & ODML @GoogleDevExpert . Android lover.