¿Qué puedes hacer con Cloud Functions?

Cloud Functions permite que los programadores accedan a eventos de Firebase y Google Cloud y brinda la capacidad de procesamiento escalable para ejecutar código en respuesta a esos eventos. Si bien se espera que las apps de Firebase usen Cloud Functions de formas únicas para satisfacer sus necesidades exclusivas, los casos de uso típicos se clasifican en las siguientes áreas:

Revisa los casos de uso y ejemplos de cada categoría que te interese y, luego, continúa con nuestro instructivo Primeros pasos o con las guías prácticas específicas para eventos de autenticación, eventos de estadísticas y mucho más.

Notifica a los usuarios cuando ocurre algo interesante

Los desarrolladores pueden usar Cloud Functions para mantener a los usuarios interesados y actualizados con información relevante sobre la app. Por ejemplo, considera una app que les permite a los usuarios seguir las actividades de otras personas en la app. Cada vez que un usuario se agregue como seguidor de otro, se escribirá algo en Realtime Database. Luego, este evento de escritura podría activar una función para crear notificaciones de Firebase Cloud Messaging (FCM) a fin de que los usuarios apropiados sepan que obtuvieron nuevos seguidores.

Diagrama en el que se muestra el flujo de la app que se describe a continuación

  1. La función se activa cuando se escribe en la ruta de acceso de Realtime Database en la que se almacenan los seguidores.
  2. La función redacta un mensaje para enviarlo a través de FCM.
  3. FCM envía el mensaje de notificación al dispositivo del usuario.

Para revisar el código en funcionamiento, consulta Cómo enviar notificaciones de FCM.

Otros casos de uso de notificaciones interesantes

Ejecuta la limpieza y el mantenimiento de la base de datos

Con la administración de eventos de base de datos de Cloud Functions, puedes modificar Realtime Database o Cloud Firestore en respuesta al comportamiento del usuario a fin de mantener el sistema actualizado y limpio. Por ejemplo, en una app de salas de chat, podrías supervisar los eventos de escritura y quitar el texto inapropiado o el lenguaje obsceno de los mensajes de los usuarios. Podrías hacerlo de esta manera:

Diagrama en el que se muestra el flujo de la app que se describe a continuación

  1. El controlador de eventos de la base de datos de la función detecta eventos de escritura en una ruta de acceso específica y recupera datos del evento con el texto de los mensajes de chat.
  2. La función procesa el texto para detectar y quitar el lenguaje inapropiado.
  3. La función vuelve a escribir el texto actualizado en la base de datos.

Para revisar el código en funcionamiento, consulta la muestra Moderación de texto. Esta muestra limpia el lenguaje inapropiado y los “gritos” en mayúsculas en los mensajes de chat.

Otros casos de uso de bases de datos para limpieza y mantenimiento

Ejecuta tareas intensivas en la nube en lugar de en la app

Los desarrolladores pueden aprovechar Cloud Functions para descargar a la nube de Google el trabajo que requiere una gran cantidad de recursos (uso intensivo de CPU o de la red) y que no sería práctico ejecutar en el dispositivo de un usuario. Por ejemplo, podrías escribir una función que detecte cuando se suben imágenes a Cloud Storage, descargue la imagen a la instancia que ejecuta la función, la modifique y vuelva a subirla a Cloud Storage. Las modificaciones podrían incluir cambiar el tamaño de las imágenes, recortarlas o convertirlas. Las herramientas de línea de comandos de ImageMagick se proporcionan para usarlas con Cloud Functions y facilitar este trabajo.

Diagrama en el que se muestra el flujo de la app que se describe a continuación

  1. Una función se activa cuando se sube un archivo de imagen a Cloud Storage.
  2. La función descarga la imagen y crea una versión en miniatura de ella.
  3. La función escribe la ubicación de la miniatura en la base de datos, de manera que una app cliente pueda encontrarla y usarla.
  4. La función vuelve a subir la miniatura a Cloud Storage en una ubicación nueva.
  5. La app descarga el vínculo de la miniatura.

Para obtener una explicación de un ejemplo de procesamiento de imágenes, consulta Administra eventos de Storage.

Otros ejemplos de trabajos por lote en la nube de Firebase

Realiza integraciones con API y servicios de terceros

Cloud Functions puede ayudar a que tu app funcione mejor con otros servicios a través de llamadas y muestras de API web. Por ejemplo, una app que se usa para la programación colaborativa podría publicar confirmaciones de GitHub en la sala de chat de un grupo de trabajo.

Diagrama en el que se muestra el flujo de la app que se describe a continuación

  1. Un usuario envía confirmaciones a un repositorio de GitHub.
  2. Una función HTTPS se activa a través de la API de webhook de GitHub.
  3. La función envía una notificación de la confirmación a un canal del equipo en Slack.

Otras maneras de integrar con API y servicios de terceros