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:
- Notifica a los usuarios cuando ocurre algo interesante.
- Ejecuta la limpieza y el mantenimiento de la base de datos.
- Ejecuta tareas intensivas en la nube en lugar de en la app.
- Realiza integraciones con API y servicios de terceros.
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.
- La función se activa cuando se escribe en la ruta de acceso de Realtime Database en la que se almacenan los seguidores.
- La función redacta un mensaje para enviarlo a través de FCM.
- 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
- Envía correos electrónicos de confirmación a usuarios que se suscriben a un boletín informativo o anulan su suscripción.
- Envía un correo electrónico de bienvenida cuando un usuario completa el proceso de registro.
- Envía una confirmación por SMS cuando un usuario crea una cuenta nueva.
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:
- 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.
- La función procesa el texto para detectar y quitar el lenguaje inapropiado.
- 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
- Borra definitivamente el contenido de un usuario eliminado de Realtime Database.
- Limita la cantidad de nodos secundarios en una base de datos de Firebase.
- Haz un seguimiento de la cantidad de elementos de una lista de Realtime Database.
- Copia datos desde Realtime Database a Google Cloud BigQuery.
- Convierte texto en emoji.
- Administra metadatos procesados para registros de bases de datos.
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.
- Una función se activa cuando se sube un archivo de imagen a Cloud Storage.
- La función descarga la imagen y crea una versión en miniatura de ella.
- 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.
- La función vuelve a subir la miniatura a Cloud Storage en una ubicación nueva.
- 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
- Borra cuentas inactivas de Firebase de manera periódica.
- Modera las imágenes subidas de forma automática.
- Envía correos electrónicos masivos a los usuarios.
- Recopila y resume datos de forma periódica.
- Procesa una fila de trabajo pendiente.
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.
- Un usuario envía confirmaciones a un repositorio de GitHub.
- Una función HTTPS se activa a través de la API de webhook de GitHub.
- 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
- Usa la API de Google Cloud Vision para analizar y etiquetar las imágenes subidas.
- Traduce mensajes con Google Translate.
- Usa proveedores de autenticación como LinkedIn o Instagram para que los usuarios accedan.
- Envía una solicitud a un webhook cuando se realizan escrituras de Realtime Database.
- Habilita la búsqueda de texto completo en elementos de Realtime Database.
- Procesa pagos de los usuarios.
- Crea respuestas automáticas para llamadas telefónicas y mensajes SMS.
- Crea un chatbot con Asistente de Google.