Ir a la consola

Ejecuta funciones de manera local

Firebase CLI incluye un emulador de Cloud Functions que puede emular los siguientes tipos de funciones:

  • Funciones HTTPS
  • Funciones que admiten llamadas
  • Funciones de Cloud Firestore

Puedes ejecutar funciones de manera local para probarlas antes de implementarlas en producción.

Instala Firebase CLI

Para usar el emulador de Cloud Functions, primero instala Firebase CLI:

npm install -g firebase-tools

Con el fin de usar el emulador local, Cloud Functions debe contar con lo siguiente:

  • firebase-admin versión 8.0.0 o superior.
  • firebase-functions versión 3.0.0 o superior.

Configura las credenciales de administrador (opcional)

Si deseas que tus pruebas de funciones interactúen con las API de Google o con otras API de Firebase mediante el SDK de Firebase Admin, es posible que debas configurar las credenciales de administrador.

  • Los activadores de Cloud Firestore y Realtime Database ya tienen las credenciales necesarias y no requieren una configuración adicional.
  • Se deben seguir los pasos de configuración descritos en esta sección para todas las otras API, incluidas las de Firebase, como las de Authentication y FCM, o las de Google, como las de Cloud Translation o Cloud Speech. Esto se aplica si usas el shell de Functions o firebase emulators:start.

A fin de configurar las credenciales de administrador para las funciones emuladas, sigue estos pasos:

  1. Abre el panel de Cuentas de servicio de Google Cloud Console.
  2. Asegúrate de seleccionar la cuenta de servicio predeterminada de App Engine. En las opciones de menú del lado derecho, elige Crear clave.
  3. Cuando se te solicite, selecciona JSON para el tipo de clave y haz clic en Crear.
  4. Configura las credenciales predeterminadas de Google para apuntar a la clave descargada:

    Unix

    $ export GOOGLE_APPLICATION_CREDENTIALS="path/to/key.json"
    
    $ firebase emulators:start
    

    Windows

    $ set GOOGLE_APPLICATION_CREDENTIALS=path\to\key.json
    
    $ firebase emulators:start
    

Después de completar estos pasos, tus pruebas de funciones pueden acceder a las API de Google y Firebase a través del SDK de Admin. Por ejemplo, cuando pruebes un activador de Authentication, la función emulada podría llamar a admin.auth().getUserByEmail(email).

Ejecuta el conjunto de herramientas del emulador

Para ejecutar el emulador de Cloud Functions, usa el comando emulators:start:

firebase emulators:start

El comando emulators:start iniciará los emuladores para Cloud Functions, Cloud Firestore, Realtime Database y Firebase Hosting en función de los productos que inicializaste en tu proyecto local con firebase init. Si quieres iniciar un emulador específico, usa la marca --only:

firebase emulators:start --only functions

Si quieres ejecutar una prueba o una secuencia de comandos de prueba después de que se inicien los emuladores, usa el comando emulators:exec:

firebase emulators:exec "./my-test.sh"

Interacciones con otros servicios

El paquete del emulador incluye varios emuladores, lo que permite probar las interacciones entre los productos.

Cloud Firestore

Si tienes funciones de Cloud Functions que usan el SDK de Firebase Admin para escribir a Cloud Firestore, estas operaciones de escritura se enviarán al emulador de Cloud Firestore si se está ejecutando. Si esas operaciones de escritura activan otras funciones de Cloud Functions, estas se ejecutarán en el emulador de Cloud Functions.

Firebase Hosting

Si usas Cloud Functions a fin de generar contenido dinámico para Firebase Hosting, firebase emulators:start usa tus funciones de HTTP locales como proxies para hosting.

Registros

El emulador transmite registros de tus funciones a la ventana de la terminal en la que se ejecutan. Muestra toda la información resultante de las declaraciones console.log(), console.info(), console.error() y console.warn() dentro de tus funciones.

Próximos pasos

Para ver un ejemplo completo de cómo usar el conjunto de herramientas del emulador de Firebase, consulta la muestra de inicio rápido.