Cloud Functions les brinda a los desarrolladores acceso a eventos de Firebase y Google Cloud, al igual que 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) para 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 el código de muestra en GitHub:
- Node.js: fcm-notifications
- Python: fcm-notifications
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.
- 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 la base de datos de Cloud Functions, puedes modificar Realtime Database o Cloud Firestore en respuesta al comportamiento del usuario y mantener el sistema en el estado deseado. Por ejemplo, podrías supervisar los eventos de escritura y cambiar el formato (por ejemplo, cambiar a mayúsculas) de ciertas cadenas en 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 cambiar las cadenas a mayúsculas.
- La función vuelve a escribir el texto actualizado en la base de datos.
Para revisar el código en funcionamiento, consulta el código de muestra en GitHub:
- Node.js: uppercase-rtdb
- Python: uppercase-rtdb
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 en una lista de Realtime Database.
- Copia datos de 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
Puedes aprovechar Cloud Functions para transferir a la nube de Google el trabajo que requiere una gran cantidad de recursos (uso intensivo de CPU o de la red) en lugar de ejecutarlo en el dispositivo de un usuario, lo que mejora la capacidad de respuesta de tu app. Por ejemplo, podrías escribir una función para detectar cuando se suben imágenes a Cloud Storage, descargar la imagen a la instancia que ejecuta la función, modificarla y volver a subirla a Cloud Storage. Las modificaciones podrían incluir cambiar el tamaño de las imágenes, recortarlas o convertirlas con herramientas como sharp o Pillow.
- Una función se activa cuando un archivo de imagen se sube 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 la guía sobre cómo controlar eventos de Cloud Storage.
Otros ejemplos de trabajos por lote en la nube de Firebase
- Borra cuentas de Firebase sin usar de forma periódica Node.js | Python.
- Crea una copia de seguridad automáticamente de las imágenes subidas Node.js | Python.
- 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; para ello, llama a las APIs web y las muestra. 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 la autenticación personalizada para permitir que los usuarios accedan.
- Envía una solicitud a un webhook cuando se realizan operaciones de escritura en Realtime Database.
- Habilita la búsqueda en el 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.