Probar funciones HTTP localmente en Firebase
Clase 14 de 22 • Curso de Firebase 5: Cloud Functions
Contenido del curso
Consola web de administración
Extendiendo la Gestión de Usuarios con Cloud Functions.
Extendiendo Firestore con Cloud Functions.
Extendiendo el Almacenamiento con Cloud Functions.
Creando Cloud Functions HTTPS
Extendiendo el Hosting con Cloud Functions.
Extendiendo crashlytics con Cloud Functions.
Extendiendo Analytics con Cloud Functions.
Creación de pruebas unitarias a las Cloud Functions.
Optimizando las Cloud Functions.
Cierre
Validar una función HTTP en Firebase de forma local y luego en producción es clave para iterar rápido y con confianza. Aquí verás cómo revisar el código con Express, emular con Firebase, probar con Postman, desplegar solo la función necesaria y verificar respuestas 200 OK, manejo de índices en Firestore y envío de correos.
¿Cómo preparar el código y los datos para la prueba?
Antes de ejecutar, conviene una revisión rápida. Se importa Express y se obtiene la instancia con paréntesis. Se define un endpoint con método POST y se versiona la ruta con /V1. Desde Firestore se recuperan los emails, se recorren y se concatenan separados por comas. Luego se envían a la librería de utilidad de correo. Si Firestore solicita crear un índice, se usa la combinación de campos publicado y fecha.
- Importar Express e instanciar: asegurar paréntesis para la instancia.
- Definir POST con versión: usar ruta /V1.
- Consultar Firestore: recuperar emails de usuarios.
- Concatenar correos: separar por comas para el envío.
- Enviar con librería de correo: utilizar la data preparada.
- Índice en Firestore: publicado + fecha; si aparece aviso, crearlo desde el enlace.
¿Cómo emular con firebase functions:shell?
Se crea un ambiente local que emula las funciones y permite invocarlas como si fuera un cliente. Tras iniciar, se llama la función HTTP con POST, se incluye /V1 y se envían datos tipo JSON mediante .form. La respuesta esperada es 200 OK indicando que el correo se envió correctamente.
- Iniciar el emulador local.
- Invocar la función HTTP con método POST.
- Añadir /V1 a la ruta.
- Enviar datos con .form usando JSON de prueba.
- Verificar 200 OK y recepción del correo.
Comando base:
firebase functions:shell
¿Cómo probar con servidor local y Postman?
Además del shell, se puede montar un servidor local de funciones HTTP. Al iniciar, Firebase muestra una URL. Se copia en Postman, se agrega /V1, se selecciona POST y se envía el mismo JSON de prueba. La respuesta esperada es true como confirmación de éxito y se valida la llegada del correo.
- Levantar servidor local solo de funciones HTTP.
- Copiar la URL generada y agregar /V1.
- Configurar Postman con método POST.
- Enviar el cuerpo en JSON y ejecutar.
- Confirmar resultado true y correo recibido.
Comando base:
firebase serve --only functions
¿Qué validar en la respuesta y en el correo?
- Código HTTP 200 OK.
- Resultado true en la respuesta.
- Correo recibido con los posts activos.
¿Cómo desplegar en Firebase y monitorear recursos?
Para publicar, se despliega únicamente la función deseada. Al finalizar, Firebase entrega una URL pública que se puede probar desde Postman agregando /V1. En la consola de Firebase se observan detalles: tipo HTTP, URL, y la memoria asignada por defecto de 256 MB de RAM. También se consultan los registros para confirmar que la ejecución finalizó correctamente.
- Desplegar solo la función objetivo.
- Probar la URL pública con /V1 desde Postman.
- Verificar resultado true y llegada del correo.
- Revisar en Firebase: tipo HTTP, URL y RAM por defecto (256 MB).
- Consultar registros para validar ejecución.
Comando base:
firebase deploy --only functions:enviar:enviar post semana
¿Qué habilidades y conceptos refuerzas?
- Emulación local con Firebase para pruebas rápidas.
- Endpoints versionados con /V1 en Express.
- Manejo de POST con datos en JSON.
- Índices compuestos en Firestore (publicado + fecha).
- Verificación de 200 OK y resultado true.
- Uso de Postman para pruebas de HTTP.
- Despliegue selectivo de funciones y análisis de registros.
¿Tienes dudas sobre la emulación, el índice de Firestore o el despliegue selectivo? Comparte tu pregunta y cuéntame qué parte te gustaría profundizar.