Únete de manera presencial y en línea a Firebase Summit el 18 de octubre de 2022. Descubre cómo Firebase puede ayudarte a acelerar el desarrollo de apps, a lanzar la tuya con confianza y a escalar con facilidad. Regístrate ahora

Use el emulador de extensiones para evaluar extensiones

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Antes de usar el emulador de Extensions con su aplicación, asegúrese de comprender el flujo de trabajo general de Firebase Local Emulator Suite y de instalar y configurar Local Emulator Suite y revisar sus comandos CLI .

Esta guía también asume que está familiarizado con las extensiones de Firebase y cómo usarlas en sus aplicaciones de Firebase .

¿Qué puedo hacer con el emulador de extensiones?

Con el emulador de extensiones, puede instalar y administrar extensiones en un entorno local seguro y comprender mejor sus capacidades mientras minimiza los costos de facturación. El emulador ejecuta las funciones de su extensión localmente, incluidas las funciones activadas por eventos en segundo plano mediante los emuladores para Cloud Firestore, Realtime Database, Cloud Storage, Authentication y Pub/Sub, y las funciones activadas por Eventarc implementadas en Cloud Functions v2.

Elija un proyecto de Firebase

Firebase Local Emulator Suite emula productos para un único proyecto de Firebase.

Para seleccionar el proyecto a usar, antes de iniciar los emuladores, en la CLI, ejecute firebase use en su directorio de trabajo. O bien, puede pasar el indicador --project a cada comando del emulador.

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

Tipo de proyecto Características Usar con emuladores
Real

Un proyecto real de Firebase es uno que usted creó y configuró (probablemente a través de la consola de Firebase).

Los proyectos reales tienen recursos activos, como instancias de base de datos, depósitos de almacenamiento, funciones o cualquier otro recurso que configure para ese proyecto de Firebase.

Cuando trabaje con proyectos reales de Firebase, puede ejecutar emuladores para cualquiera o todos los productos admitidos.

Para cualquier producto que no esté emulando, sus aplicaciones y código interactuarán con el recurso en vivo (instancia de base de datos, depósito de almacenamiento, función, etc.).

Manifestación

Un proyecto de demostración de Firebase no tiene una configuración real de Firebase ni recursos activos. Por lo general, se accede a estos proyectos a través de codelabs u otros tutoriales.

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

Al trabajar con proyectos de demostración de Firebase, sus aplicaciones y código interactúan solo con emuladores . Si su aplicación intenta interactuar con un recurso para el que no se está ejecutando un emulador, ese código fallará.

Le recomendamos que utilice proyectos de demostración siempre que sea posible. Beneficios incluidos:

  • Configuración más sencilla, ya que puede ejecutar los emuladores sin tener que crear un proyecto de Firebase
  • Mayor seguridad, ya que si su código invoca accidentalmente recursos (de producción) no emulados, no hay posibilidad de cambio de datos, uso y facturación.
  • Mejor soporte sin conexión, ya que no es necesario acceder a Internet para descargar la configuración de su SDK.

Instalar y evaluar una extensión

Usar el emulador de extensiones para evaluar si una extensión satisface sus necesidades es sencillo.

Supongamos que está interesado en la extensión Trigger Email ( firestore-send-email ), aunque el siguiente flujo de trabajo cubre cualquier extensión. Cuando se ejecuta con emuladores locales, Trigger Email utilizará automáticamente los emuladores Cloud Firestore y Cloud Functions.

Para evaluar una extensión localmente:

  1. Agregue la extensión al manifiesto de extensiones locales. Un manifiesto de extensiones es una lista de instancias de extensión y sus configuraciones.

    firebase ext:install --local firebase/firestore-send-email

    Ejecutar el comando anterior le pedirá que configure la última versión de firebase/firestore-send-email y guarde la configuración en el manifiesto, pero no implementará la configuración en su proyecto. Para obtener más información al respecto, consulte Administrar la configuración de extensiones con manifiestos.

  2. Inicie Local Emulator Suite como lo haría normalmente.

    firebase emulators:start

Ahora, usando la instancia de la extensión firestore-send-email que figura en su manifiesto, Local Emulator Suite descargará el código fuente de esa extensión a ~/.cache/firebase/extensions . Una vez que se hayan descargado las fuentes, se iniciará Local Emulator Suite y podrá activar cualquiera de las funciones activadas en segundo plano de la extensión y conectar su aplicación a Local Emulator Suite para probar su integración con su aplicación.

Puede usar la interfaz de usuario de Emulator Suite para agregar datos a la colección de documentos de correo electrónico y configurar otros recursos de back-end, según lo requiera la extensión Trigger Email.

Alternativamente, para entornos de prueba no interactivos como flujos de trabajo de integración continua, puede escribir un script de prueba para evaluar la extensión que, entre otros pasos, completa los datos necesarios de Cloud Firestore y activa las funciones. Luego invocaría Local Emulator Suite para ejecutar su script de prueba:

firebase emulators:exec my-test.sh

En qué se diferencian las pruebas con el emulador de Extensions de las de producción

El emulador de extensiones le permite probar extensiones de una manera que se acerque a la experiencia de producción. Sin embargo, existen algunas diferencias con respecto al comportamiento de producción.

IAM en la nube

Firebase Emulator Suite no intenta replicar ni respetar ningún comportamiento relacionado con IAM para ejecutarse. Los emuladores se adhieren a las reglas de seguridad de Firebase proporcionadas, pero en situaciones en las que normalmente se usaría IAM, por ejemplo, para configurar la cuenta de servicio de invocación de Cloud Functions y, por lo tanto, los permisos, el emulador no es configurable y utilizará la cuenta disponible globalmente en su máquina de desarrollador. similar a ejecutar un script local directamente.

Limitación del tipo de activación

Actualmente, Firebase Local Emulator Suite solo admite funciones activadas por solicitud HTTP, activadores de eventos personalizados de Eventarc para extensiones y funciones activadas por eventos en segundo plano para Cloud Firestore, Realtime Database, Cloud Storage, Authentication y Pub/Sub. Para evaluar extensiones que usan otros tipos de funciones activadas, debe instalar su extensión en un proyecto de prueba de Firebase.

¿Qué sigue?