Ir al contenido
Star
478
Star
478

Firebase Cloud Functions

Esta guía te muestra cómo trabajar con Google Cloud Firebase Functions localmente usando el Firebase Emulator Suite. Este lab demuestra una función HTTPS síncrona que recupera un secreto de Secret Manager basándose en el nombre de usuario.

  1. Configurar el entorno:

    Abre VS Code en la carpeta del proyecto y ejecuta este comando en la Paleta de Comandos:

    Ventana de terminal
    > Dev Containers: Reopen in Container
  2. Iniciar los emuladores de Firebase:

    Ventana de terminal
    firebase emulators:start
  3. Ejecutar el ejemplo:

    Ventana de terminal
    python main.py
  1. Cloud Function:

    • Asegúrate: Detén el emulador de Firebase antes de conectar el depurador (entra en conflicto con el puerto del depurador).
    • Ejecuta: Lanza la configuración Debug Cloud Function (Local) desde la pestaña Run and Debug.
    • Breakpoints: Añade breakpoints dentro de get_secret en functions/main.py.
    • Envía: Dispara una petición mediante curl o el REST Client apuntando a http://localhost:8080/.
  2. main.py:

    • Asegúrate: Detén el emulador de Firebase antes de conectar el depurador.
    • Ejecuta: Lanza la configuración Debug Cloud Function (Local).
    • Configura: Establece DEBUG_MODE=True en tu .env.
    • Ejecuta: Abre main.py e inicia el depurador Python: Current File.
  3. Tests:

    • Asegúrate: El emulador de Firebase debe estar en ejecución para depurar tests individualmente.
    • Breakpoints: Añade breakpoints en tests/test_get_secret.py.
    • Ejecuta: Abre la pestaña Testing y haz clic en el icono Debug Test junto al test deseado.
  • Todos los tests: Ejecuta el script automatizado:
    Ventana de terminal
    scripts/run_tests.sh
  • Individualmente: Usa la pestaña Testing de VS Code para ejecutar o depurar casos de test específicos.

Abre la UI del emulador de Firebase y navega a la sección Logs para inspeccionar la actividad de las funciones:

Ventana de terminal
http://localhost:4000

Detén los emuladores pulsando Ctrl+C en el terminal donde se ejecuta firebase emulators:start. Para eliminar los volúmenes:

Ventana de terminal
docker compose down -v