Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Conecta tu app al emulador de Cloud Functions

Antes de conectar tu app al emulador de Cloud Functions, asegúrate de comprender el flujo de trabajo general de Firebase Local Emulator Suite y de instalar y configurar Local Emulator Suite y revisar los comandos de su CLI.

Elige un proyecto de Firebase

Firebase Local Emulator Suite emula los productos para un solo proyecto de Firebase.

A fin de seleccionar el proyecto que quieres usar, ejecuta firebase use en la CLI en tu directorio de trabajo antes de iniciar los emuladores. También puedes pasar la marca --project a cada comando del emulador.

Local Emulator Suite admite la emulación de proyectos reales y de demostración en Firebase.

Tipo de proyecto Características Uso con emuladores
Real

Los proyectos de Firebase reales son aquellos que creaste y configuraste (probablemente mediante Firebase console).

Los proyectos reales tienen recursos activos, como instancias de bases de datos, buckets de almacenamiento, funciones o cualquier otro recurso que hayas configurado para ese proyecto de Firebase.

Cuando trabajas con proyectos reales de Firebase, puedes ejecutar emuladores para cualquiera de los productos compatibles o todos.

Si se trata de un producto que no estás emulando, tus apps y código interactuarán con los recursos activos (instancias de bases de datos, bucket de almacenamiento, función, etcétera).

Demostración

Los proyectos de demostración de Firebase no tienen una configuración real de Firebase ni recursos activos. Por lo general, se accede a estos proyectos mediante Codelabs o algún otro instructivo.

Los ID de proyectos de los proyectos de demostración tienen el prefijo demo-.

Cuando trabajas con proyectos de demostración, tus apps y código interactúan solo con emuladores. Si tu app intenta interactuar con un recurso para el cual no se está ejecutando un emulador, ese código fallará.

Te recomendamos que uses proyectos de demostración siempre que sea posible. Estos son algunos de los beneficios:

  • Configuración más sencilla, ya que puedes ejecutar los emuladores sin crear un proyecto de Firebase
  • Mayor seguridad, ya que, si tu código invoca de forma accidental recursos no emulados (de producción), no hay probabilidad de que se modifiquen los datos, el uso ni la facturación
  • Mejor soporte sin conexión, ya que no es necesario acceder a Internet para descargar la configuración del SDK

Instrumenta la app para que se comunique con los emuladores

Instrumenta la app para funciones que admiten llamadas

Si tus actividades de prototipado y realización de pruebas involucran funciones de backend que admiten llamadas, configura la interacción con el emulador de Cloud Functions para Firebase de la siguiente manera:

Android
        // 10.0.2.2 is the special IP address to connect to the 'localhost' of
        // the host computer from an Android emulator.
        FirebaseFunctions functions = FirebaseFunctions.getInstance();
        functions.useEmulator("10.0.2.2", 5001);
iOS (Swift)
Functions.functions().useFunctionsEmulator(origin: "http://localhost:5001")

Web versión 9

import { getApp } from "firebase/app";
import { getFunctions, connectFunctionsEmulator } from "firebase/functions";

const functions = getFunctions(getApp());
connectFunctionsEmulator(functions, "localhost", 5001);

Web versión 8

firebase.functions().useEmulator("localhost", 5001);

Instrumenta la app para emular funciones HTTPS

Se entregará cada función HTTPS de tu código desde el emulador local con el siguiente formato de URL:

http://$HOST:$PORT/$PROJECT/$REGION/$NAME

Por ejemplo, una función helloWorld simple con el puerto y la región de host predeterminados se entregarían en la siguiente ubicación:

https://localhost:5001/$PROJECT/us-central1/helloWorld

Instrumenta la app para emular funciones activadas en segundo plano

El emulador de Cloud Functions admite funciones activadas en segundo plano de las siguientes fuentes:

  • Emulador de Realtime Database
  • Emulador de Cloud Firestore
  • Emulador de Authentication
  • Emulador de Pub/Sub

Para activar eventos en segundo plano, conecta la app o el código de prueba a los emuladores con el SDK de tu plataforma.

¿Qué otras herramientas existen para probar Cloud Functions?

El emulador de Cloud Functions se complementa con otras herramientas de prototipado y pruebas, como las siguientes:

  • La shell de Cloud Functions, que permite el prototipado y el desarrollo de funciones interactivas e iterativas. La shell utiliza el emulador de Cloud Functions con una interfaz de estilo REPL para llevar a cabo el desarrollo. No se proporciona ninguna integración en los emuladores de Cloud Firestore o Realtime Database. Con la shell, puedes simular datos y realizar llamadas a funciones para imitar la interacción con productos que Local Emulator Suite no admite actualmente, como Cloud Storage, Pub/Sub, Analytics, Remote Config, Storage, Auth y Crashlytics.
  • El SDK de Firebase Test para Cloud Functions, un framework de Node.js con Mocha para desarrollar funciones. Cuando se implementa, el SDK de Firebase Test para Cloud Functions proporciona automatización sobre la shell de Cloud Functions.

Puedes encontrar más información sobre la shell de Cloud Functions y el SDK de Firebase Test para Cloud Functions en Prueba funciones de forma interactiva y Prueba de unidades de Cloud Functions.

Próximos pasos