Capítulo 39 — Firebase Emulator Suite: Desarrollo, pruebas y depuración profesional¶
Recursos visuales propuestos¶
Antes de desarrollar el capítulo es útil separar los recursos que explican la idea general de “desarrollo local con emuladores” de aquellos que describen la arquitectura exacta del entorno. La lista de componentes del Emulator Suite, el flujo de desarrollo local visto desde el punto de vista del desarrollador, el panel visual del Emulator Suite, la comparación desarrollo local vs producción y los casos de uso deben representarse como imágenes didácticas, porque su objetivo principal es pedagógico: ayudar al lector a entender qué es, para qué sirve y qué problemas resuelve trabajar con emuladores sin entrar todavía en el detalle técnico de puertos, protocolos o integración interna.[page:2]
En cambio, la arquitectura completa del entorno local, la comunicación entre emuladores, el flujo Cliente → Emulator Suite → servicios Firebase reales (cuando se combinan) y la arquitectura de desarrollo profesional basada en entornos locales y remotos deben representarse como diagramas SVG, porque necesitan mostrar cómo interactúan procesos, servicios emulados, CLI, aplicaciones cliente, pipelines y recursos en la nube. En estos casos la precisión de los componentes y sus relaciones es más importante que la apariencia visual.[page:1][page:2]
Imágenes didácticas¶
- Componentes del Emulator Suite. Imagen didáctica para mostrar a alto nivel qué servicios se pueden emular (Firestore, Authentication, Functions, Storage, Hosting, Pub/Sub, etc.).[page:2]
- Flujo de desarrollo local. Imagen didáctica para ilustrar el ciclo “editar código → ejecutar emuladores → probar → depurar” desde el punto de vista del desarrollador.
- Panel del Emulator Suite. Imagen didáctica del panel web donde se visualizan bases de datos, funciones, solicitudes y reglas.
- Comparación desarrollo local vs producción. Imagen didáctica que resuma riesgos, costos y beneficios de cada entorno.
- Casos de uso. Imagen didáctica que relacione escenarios (plataforma educativa, sistema documental, APIs internas) con el uso de los emuladores.
Diagramas SVG¶
- Arquitectura completa del entorno local. SVG para representar la app cliente, la CLI, los emuladores (Firestore, Auth, Functions, Storage, Hosting, Pub/Sub, Eventarc, Data Connect) y su relación con el proyecto Firebase/GCP real.[page:1][page:2]
- Comunicación entre emuladores. SVG para mostrar cómo una función emulada puede escuchar cambios en Firestore emulado, publicar en Pub/Sub emulado o servir contenido a través de Hosting emulado.
- Flujo Cliente → Emulator Suite → servicios Firebase. SVG para visualizar claramente cuándo las llamadas van contra emuladores y cuándo contra servicios de producción, y cómo se decide este ruteo en el código.
- Arquitectura de desarrollo profesional. SVG para integrar repositorio Git, CI, entornos locales con emuladores, ambientes de staging y producción en la nube.
Objetivos de aprendizaje¶
Al finalizar este capítulo, el lector será capaz de:
- Comprender qué es Firebase Emulator Suite y por qué es una pieza central en un flujo de desarrollo profesional con Firebase.[page:1]
- Diferenciar claramente desarrollo local, staging y producción, entendiendo qué riesgos se reducen al trabajar con emuladores.
- Configurar Emulator Suite mediante Firebase CLI,
firebase.jsonyfirebase emulators:start, seleccionando servicios, puertos y opciones de persistencia.[page:1][page:2] - Conectar su aplicación web o móvil a los emuladores de Firestore, Authentication, Cloud Functions, Storage y Hosting.[page:2]
- Diseñar datos de prueba, simular usuarios y eventos, y ejecutar pruebas integrales sin impactar la infraestructura real.
- Exportar e importar estados de los emuladores para compartir conjuntos de datos consistentes dentro de un equipo.
- Integrar Emulator Suite en el flujo de trabajo del proyecto educativo oficial del libro, incluyendo desarrollo colaborativo y preparación antes de desplegar a producción.
Introducción¶
¿Qué es Firebase Emulator Suite?¶
Firebase Emulator Suite es un conjunto de emuladores locales que reproduce el comportamiento de varios servicios de Firebase en tu máquina de desarrollo. La documentación lo define como un entorno local para desarrollar, ejecutar y probar aplicaciones que usan Firebase sin tocar los recursos de producción.[page:1]
Desde un punto de vista práctico, esto significa que puedes levantar una “mini Firebase” en tu equipo: una instancia de Firestore, Authentication, Functions, Storage, Hosting, Pub/Sub, Eventarc, Realtime Database y otros servicios emulados, con los que tu aplicación interactúa como si estuviera hablando con la nube, pero sin enviar ni leer datos reales ni consumir cuota.[page:1][page:2]
¿Por qué utilizar un entorno local?¶
Trabajar directamente contra producción es una de las fuentes más frecuentes de problemas en proyectos reales: datos de prueba mezclados con datos reales, costos inesperados, riesgos de seguridad, reglas mal configuradas que se prueban “en vivo”, o errores en funciones que disparan cargas de trabajo no controladas. Un entorno local emulado permite:
- experimentar sin miedo a romper datos reales;
- probar reglas de seguridad sin exponer información;
- reproducir escenarios complejos sin afectar usuarios finales;
- desarrollar más rápido, sin depender de latencia de red o cuotas de producción.
Diferencias entre desarrollo y producción¶
En un flujo profesional, desarrollo y producción no son versiones del mismo entorno: son entornos distintos con objetivos y riesgos diferentes. Producción debe ser estable, segura y predecible; desarrollo, flexible y tolerante al cambio.
Emulator Suite ayuda a reforzar esa separación al proporcionar un espacio local donde los desarrolladores pueden probar ideas, experimentar con reglas, depurar funciones y simular tráfico sin tocar servicios remotos.[page:1]
Beneficios del desarrollo offline¶
Desarrollar contra emuladores trae beneficios claros:
- Productividad: iteraciones rápidas, sin esperar despliegues o sincronizaciones remotas.
- Seguridad: no se exponen datos reales ni se manipulan credenciales de usuarios de producción.
- Costos: se evita consumir cuota de lectura/escritura, invocaciones de funciones o ancho de banda de Storage.
- Reproducibilidad: el estado del entorno puede exportarse e importarse, permitiendo que todo el equipo trabaje con datos de prueba coherentes.[page:1]
Desarrollo completo¶
Arquitectura¶
Componentes de Emulator Suite¶
Según la documentación oficial, la Local Emulator Suite incluye emuladores para varios servicios clave: Cloud Firestore, Realtime Database, Cloud Storage, Authentication, Cloud Functions, Cloud Pub/Sub, Firebase Hosting, Eventarc y otros que se van incorporando con el tiempo.[page:1]
Cada emulador expone endpoints locales específicos (puertos) y se coordina con los demás a través de la CLI, de manera que una función emulada pueda responder a cambios en Firestore emulado, y Hosting pueda servir contenido que hable con esos mismos servicios.[page:1]
Firebase CLI¶
Firebase CLI es la puerta de entrada para trabajar con Emulator Suite. Es la herramienta que se usa para:
- inicializar configuración de emuladores (
firebase init emulators); - arrancar y detener emuladores (
firebase emulators:start,firebase emulators:exec); - definir puertos y rutas en
firebase.json; - exportar e importar estados.
La documentación presenta la CLI como la forma recomendada de gestionar emuladores en el flujo de desarrollo, integrando comandos manuales y scripts automatizados.[page:1]
Comunicación entre emuladores¶
Cuando varios emuladores están activos, se comportan como un pequeño entorno integrado. Por ejemplo:
- Firestore Emulator recibe lecturas y escrituras;
- Functions Emulator escucha eventos de Firestore, Auth, Pub/Sub emulados;
- Authentication Emulator genera usuarios de prueba cuyos tokens se aceptan en Firestore emulado;
- Hosting Emulator sirve la aplicación que consume esos servicios locales.[page:1][page:2]
Esta comunicación permite probar flujos completos de extremo a extremo: desde la acción del usuario en el cliente hasta la escritura en Firestore y la ejecución de funciones.
Flujo de ejecución local¶
Un flujo típico de ejecución local es:
- Configuras
firebase.jsoncon los emuladores que quieres usar. - Arrancas el conjunto con
firebase emulators:start. - Ejecutas la app web o móvil apuntando a los endpoints locales.
- Interactúas con la app; las solicitudes van a los emuladores.
- Observas en el panel del Emulator Suite las lecturas, escrituras, triggers y logs.[page:1]
Emuladores disponibles¶
Authentication Emulator¶
El emulador de Authentication permite crear, actualizar y borrar usuarios de prueba, iniciar sesión con distintos proveedores admitidos y probar reglas de seguridad basadas en request.auth sin tocar usuarios reales. Es ideal para simular roles, pruebas de acceso y cambios de contraseña.[page:1]
Firestore Emulator¶
El emulador de Cloud Firestore reproduce la API de Firestore y permite realizar operaciones de lectura y escritura, probar reglas de seguridad, validar estructuras de datos y ejecutar funciones que reaccionan a cambios en colecciones y documentos.[page:2]
La documentación de conexión recomienda, por ejemplo, usar firebase emulators:start y configurar la app con el helper de conexión a emulador (como connectFirestoreEmulator en el SDK web) para redirigir llamadas a Firestore local en vez de al servidor remoto.[page:2]
Cloud Functions Emulator¶
Functions Emulator ejecuta funciones HTTP, background y triggered (por Firestore, Auth, Pub/Sub, etc.) en tu máquina. Permite depurar, ver logs instantáneos, probar lógica compleja y medir tiempos de ejecución antes de desplegar a producción.[page:1]
Cloud Storage Emulator¶
Cloud Storage Emulator permite trabajar con buckets y archivos de prueba. Se pueden simular subidas, descargas, reglas de acceso y triggers de funciones que reaccionan a cambios en Storage, sin ocupar espacio en buckets reales.[page:1]
Hosting Emulator¶
El emulador de Hosting sirve archivos estáticos y, cuando corresponde, integraciones con funciones y rewrites. Permite probar rutas, comportamiento de SPA, encabezados y lógica de reescritura localmente.[page:1]
Pub/Sub Emulator¶
El emulador de Pub/Sub reproduce el comportamiento del servicio de mensajería, permitiendo probar funciones que se disparan por mensajes de Pub/Sub sin usar la infraestructura real. Esto es especialmente útil para pipelines de tareas y colas internas.[page:1]
Eventarc Emulator¶
El emulador de Eventarc permite simular eventos distribuidos más complejos dentro de Firebase y Google Cloud. Aunque su soporte evoluciona, ayuda a probar aplicaciones basadas en eventos sin desplegar a la nube.[page:1]
Data Connect Emulator (si aplica)¶
Cuando Firebase Data Connect está disponible con emulación, el emulador correspondiente permite probar consultas y mutaciones de datos estructurados localmente, integrándose con los demás emuladores.
Configuración¶
Instalación¶
Para usar Emulator Suite, es necesario tener instalado Firebase CLI y Node.js. Una vez instalada la CLI, los emuladores se descargan y gestionan automáticamente cuando se ejecutan comandos como firebase emulators:start.[page:1]
firebase init emulators¶
El comando firebase init emulators guía al desarrollador para seleccionar qué emuladores quiere usar en un proyecto, configurar puertos y generar secciones relevantes en firebase.json.[page:1]
firebase.json¶
firebase.json es el archivo de configuración central donde se definen servicios y emuladores. Para Emulator Suite, incluye una sección emulators con los servicios habilitados, puertos preferidos y opciones de import/export.[page:1]
Selección de servicios¶
Durante la inicialización y más tarde editando firebase.json, puedes decidir qué servicios se emularán: Firestore, Auth, Functions, Storage, Hosting, Pub/Sub, etc. Esto permite adaptar el entorno local a las necesidades de cada proyecto.[page:1]
Configuración de puertos¶
Cada emulador expone un puerto local que puede personalizarse. Configurar puertos explícitos ayuda a evitar conflictos y facilita la documentación del entorno.
Persistencia de datos¶
Los emuladores pueden configurarse para mantener datos entre ejecuciones mediante directorios de import/export. Esto es útil cuando quieres conservar un conjunto de datos de prueba estable o compartirlo con otros desarrolladores.[page:1]
Exportación¶
La CLI permite exportar el estado actual de los emuladores a un directorio, incluyendo datos de Firestore, Auth, Storage y otros.[page:1]
Importación¶
Del mismo modo, firebase emulators:start --import permite arrancar los emuladores cargando un snapshot previo, de modo que el entorno local se inicializa con datos conocidos.[page:1]
Integración¶
Firestore¶
Para conectar tu aplicación al emulador de Firestore, la documentación indica usar helpers como connectFirestoreEmulator en el SDK web o variables de entorno equivalentes en Admin SDK. Esto hace que todas las operaciones de lectura y escritura de Firestore se dirijan al host y puerto locales configurados.[page:2]
Authentication¶
Authentication Emulator se expone también como host:puerto. Las apps cliente o Admin SDK deben configurarse para enviar las operaciones de autenticación a ese endpoint durante desarrollo, por ejemplo con connectAuthEmulator en el SDK web o la configuración correspondiente en otros entornos.[page:1]
Cloud Functions¶
Las funciones emuladas pueden invocarse mediante rutas HTTP locales o triggers de otros emuladores (Firestore, Pub/Sub, etc.). Durante el desarrollo es habitual usar firebase emulators:start --only functions,firestore,auth para una experiencia integrada sin levantar todos los servicios a la vez.[page:1]
Storage¶
El emulador de Storage se integra con las SDKs mediante configuración similar, usando connectStorageEmulator en web o variables de entorno equivalentes en Admin para cambiar el endpoint a un host local.[page:1]
Hosting¶
El emulador de Hosting sirve la aplicación en un puerto HTTP local. Al integrar rewrites, redirects y funciones emuladas, puede simular casi todo el comportamiento de producción desde una sola URL local.[page:1]
Remote Config (limitaciones)¶
Remote Config no tiene un emulador completo local, de modo que ciertas pruebas deberán realizarse contra el servicio real o mediante estrategias alternativas. La documentación sugiere usar entornos de desarrollo bien separados y tener cuidado de no usar Remote Config como sustituto de una base de datos local.[page:1]
Cloud Messaging (consideraciones)¶
FCM tampoco se emula de extremo a extremo en todos sus flujos, por lo que las pruebas de notificaciones push seguirán requiriendo uso controlado de entornos reales o dispositivos de prueba. Emulator Suite puede ayudar en la lógica que rodea el envío (por ejemplo, triggers que escriben mensajes pendientes en Firestore), pero la entrega real de push seguirá dependiendo de FCM en la nube.
Pruebas¶
Desarrollo local¶
El objetivo principal de Emulator Suite es permitir desarrollo local completo: la app cliente ejecuta el mismo código que en producción, pero las llamadas se redirigen a emuladores en lugar de servicios remotos.
Datos de prueba¶
Los datos de prueba se cargan directamente en Firestore, Auth, Storage y otros emuladores, ya sea manualmente desde el panel o automáticamente mediante scripts que usan Admin SDK apuntando a los endpoints locales.
Simulación de usuarios¶
Authentication Emulator permite crear usuarios con distintos roles, estados y datos de perfil. Esto ayuda a probar reglas, pantallas y flujos sin exponer cuentas reales ni forzar pruebas con cuentas de producción.
Simulación de eventos¶
Functions Emulator, Pub/Sub Emulator y Firestore Emulator permiten simular eventos complejos: triggers de escritura, mensajes en colas, cambios de estado, etc. Esto es clave para la plataforma educativa del libro, donde una escritura en Firestore puede generar credenciales, notificaciones, registros administrativos o procesos de automatización.
Pruebas integrales¶
Al combinar varios emuladores, puedes ejecutar pruebas end-to-end: la app escribe en Firestore, se disparan funciones emuladas, se actualizan datos, el usuario de prueba ve resultados en la UI, y todo sin tocar la nube. Este enfoque permite detectar errores de integración antes de que lleguen a staging o producción.
Depuración¶
Los emuladores integrados con CLI y panel web facilitan ver logs, inspeccionar documentos, revisar reglas y depurar sin salir del entorno local. El panel de Emulator Suite ofrece vistas específicas para Firestore, Auth, Functions, Storage y otros servicios, lo que acelera el diagnóstico de problemas.[page:1]
Rendimiento¶
Ventajas frente a producción¶
Trabajar localmente reduce latencia, elimina dependencias de red y permite iterar más rápido, especialmente para escenarios donde se despliegan funciones o reglas con frecuencia. La documentación resalta que Emulator Suite está optimizado para desarrollo y pruebas, no para benchmarking de producción.[page:1]
Tiempo de respuesta¶
Los emuladores suelen responder más rápido que los servicios remotos en la mayoría de casos, lo cual acelera el ciclo editar–probar–corregir. Esto no significa que los tiempos local reflejen exactamente la latencia en la nube, pero sí que el feedback durante desarrollo es mucho más inmediato.
Costos¶
Al usar emuladores, no consumes cuota de lectura/escritura de Firestore, invocaciones de Functions ni ancho de banda de Storage. Esto tiene un impacto directo en el costo del proyecto, especialmente en equipos grandes o con ciclos de desarrollo intensivos.[page:1]
Productividad¶
Emulator Suite está diseñado para aumentar productividad: permite probar reglas, funciones y flujos completos sin esperar despliegues ni tocar entornos remotos. La documentación enfatiza este objetivo como uno de los beneficios clave del paquete.[page:1]
Ejemplos paso a paso¶
Ejemplo 1: levantar el entorno local para el proyecto educativo¶
- Instala Firebase CLI y Node.js si todavía no los tienes.[page:1]
- En el directorio del proyecto oficial del libro, ejecuta
firebase init emulatorsy selecciona Firestore, Auth, Functions, Storage y Hosting.[page:1] - Ajusta
firebase.jsonpara definir puertos y opciones de import/export. - Ejecuta
firebase emulators:start. - Abre la URL del Hosting Emulator y verifica que la app se conecta a los emuladores.
Ejemplo 2: simular usuarios y roles¶
- Usa el panel de Authentication Emulator para crear usuarios de prueba con distintos correos, roles y estados.
- Inicia sesión con cada uno desde la app para comprobar que las reglas de Firestore emulado responden como se espera.
Ejemplo 3: probar generación de credenciales digitales¶
- En Firestore Emulator, crea documentos de prueba que representen solicitudes de credenciales.
- Deja que Functions Emulator procese esas solicitudes y genere registros en Storage Emulator.
- Verifica que la app pueda descargar y mostrar esas credenciales desde Hosting Emulator.
Ejemplo 4: automatizar pruebas de integración¶
- Escribe pruebas automatizadas (por ejemplo con Node.js o herramientas de tu stack) que levanten emuladores con
firebase emulators:exec. - Ejecuta secuencias de creación de usuarios, escritura en Firestore y verificación de resultados.
- Integra estas pruebas en tu pipeline de CI antes de desplegar a staging.
Casos reales¶
Plataforma educativa¶
Emulator Suite permite simular toda la vida académica sin tocar datos reales: inscripciones, asignación de cursos, entrega de tareas, generación de credenciales y flujos administrativos.
Sistema documental¶
En un sistema documental, se pueden probar flujos de carga, indexación y revisión de documentos, incluyendo triggers de funciones y reglas de acceso, sin almacenar documentos sensibles en la nube.
Credenciales digitales¶
Las credenciales digitales de alumnos, docentes o personal administrativo pueden generarse, firmarse y almacenarse en Storage Emulator, verificando flujos de acceso y caducidad antes de activar la función en producción.
Automatización institucional¶
Emulator Suite permite validar automatizaciones que dependen de Pub/Sub, Eventarc y Functions sin riesgo de generar cascadas de trabajo en sistemas reales.
APIs¶
Las APIs internas o externas implementadas sobre Functions HTTP pueden ejercitarse con pruebas automatizadas contra el endpoint emulado, incluyendo casos de error y carga moderada.
Desarrollo colaborativo¶
Equipos grandes pueden compartir snapshots de datos de prueba con export/import, garantizando que todos trabajan con un entorno local comparable. Esto reduce “funciona en mi máquina” y mejora la reproducibilidad de bugs.
Comparaciones técnicas¶
Desarrollo directo en producción vs Emulator Suite¶
| Enfoque | Ventajas | Riesgos |
|---|---|---|
| Directo en producción | Menos setup inicial | Datos reales, riesgo de seguridad, costos, difícil reproducibilidad |
| Emulator Suite | Iteraciones rápidas, sin afectar producción, export/import | Requiere configuración inicial y disciplina de entornos |
Emuladores vs servicios reales¶
| Aspecto | Emuladores | Servicios reales |
|---|---|---|
| Latencia | Muy baja, local | Dependiente de red y región |
| Costos | Cero uso de cuotas | Consume cuota y facturación |
| Realismo | Suficiente para desarrollo y pruebas | Comportamiento definitivo |
Buenas prácticas¶
Separación de ambientes¶
Mantén entornos claramente separados: local con emuladores, dev o staging con servicios reales pero datos de prueba, y producción con datos reales y acceso restringido.
Datos ficticios¶
Incluso en emuladores, usa datos ficticios o anonimizados para no propagar información sensible inadvertidamente.
Automatización¶
Automatiza arranque y parada de emuladores, carga de datos de prueba y ejecución de pruebas para aumentar productividad y consistencia.
Integración con Git¶
Versiona firebase.json, scripts de emulación y documentación de puertos y endpoints. Esto hace que el entorno local forme parte del contrato del proyecto.
Limpieza de datos¶
Regenera o limpia periódicamente datos de prueba para mantener los emuladores manejables y evitar “basura” histórica que confunda resultados.
Errores frecuentes¶
- No apuntar el SDK a emuladores en desarrollo.
- Probar reglas directamente en producción.
- No aprovechar export/import para reproducir bugs.
- Depender únicamente del entorno local y no validar luego en staging.
Checklist para desarrollo profesional¶
-
firebase.jsonconfigurado con emuladores apropiados.[page:1] - Scripts para
firebase emulators:startyfirebase emulators:exec. - SDK configurado para usar emuladores en desarrollo y servicios reales en producción.[page:2]
- Datos de prueba y scripts de inicialización.
- Estrategia de export/import de estados.[page:1]
- Pruebas automatizadas que corren contra emuladores.
- Documentación de puertos, endpoints y uso del panel del Emulator Suite.
Resumen¶
Firebase Emulator Suite es el pilar del desarrollo local profesional con Firebase. Permite simular Firestore, Authentication, Functions, Storage, Hosting y otros servicios clave en tu máquina, reduciendo riesgos, costos y dependencias de producción.[page:1]
Al integrar los emuladores con Firebase CLI, firebase.json y las SDKs cliente y Admin, es posible construir un entorno local completo donde probar reglas, lógica backend, flujos de datos y vistas de la aplicación antes de desplegar cambios al entorno real.[page:2]
En el contexto del proyecto educativo del libro, Emulator Suite habilita un workflow en el que desarrolladores pueden migrar temporalmente la plataforma a un entorno local, probar nuevas funciones, reglas y procesos de automatización, y compartir estados de prueba consistentes con otros miembros del equipo, todo sin tocar datos ni recursos de producción.
Conceptos clave¶
- Firebase Emulator Suite.[page:1]
- Firebase CLI.[page:1]
- Emulador de Firestore.[page:2]
- Emulador de Authentication.[page:1]
- Emulador de Cloud Functions.[page:1]
- Emulador de Cloud Storage.[page:1]
- Emulador de Hosting.[page:1]
- Emulador de Pub/Sub.[page:1]
- Emulador de Eventarc.[page:1]
firebase.jsony secciónemulators.[page:1]- Exportación e importación de datos.[page:1]
- Conexión de SDKs a emuladores.[page:2]
Preguntas de repaso¶
- ¿Qué es Firebase Emulator Suite y qué problema resuelve en el flujo de desarrollo profesional?[page:1]
- ¿Qué beneficios aporta un entorno local emulado en términos de seguridad, costos y productividad?[page:1]
- ¿Cómo se configura Emulator Suite mediante Firebase CLI y
firebase.json?[page:1] - ¿Qué emuladores están disponibles y qué servicios reales representan?[page:1]
- ¿Cómo se conectan Firestore y Authentication desde el cliente a sus respectivos emuladores?[page:2]
- ¿Qué papel juega el panel del Emulator Suite en la depuración y visualización de datos?[page:1]
- ¿Qué limitaciones existen para servicios como Remote Config y Cloud Messaging en entornos emulados?[page:1]
- ¿Cómo se usan exportación e importación para compartir estados de prueba en un equipo?[page:1]
- ¿Qué errores frecuentes se cometen al trabajar sin emuladores o usándolos de forma incorrecta?
- ¿Cómo integrarías Emulator Suite en el flujo de trabajo del proyecto educativo del libro?
Ejercicios prácticos¶
- Configura
firebase.jsonpara usar los emuladores de Firestore, Auth, Functions, Storage y Hosting en el proyecto oficial.[page:1] - Crea un script que levante los emuladores, cargue datos de prueba en Firestore y Auth, y luego ejecute una suite de pruebas automatizadas.
- Simula tres tipos de usuarios (alumno, docente, administrador) en Authentication Emulator y verifica reglas de Firestore emulado para cada uno.
- Diseña un flujo de generación y descarga de credenciales digitales sólo usando emuladores y valida que funcione de extremo a extremo.
- Exporta el estado de los emuladores, compártelo con otro desarrollador del equipo y pídele que reproduzca un bug específico.
- Compara tiempos de respuesta entre ejecutar una funcionalidad usando emuladores y hacerlo contra un entorno remoto de desarrollo.
- Integra
firebase emulators:execen una pipeline de CI para que las pruebas de integración se ejecuten siempre contra emuladores antes de un deploy. - Documenta internamente puertos, endpoints y flujos básicos para nuevos miembros del equipo.
- Identifica qué partes del proyecto aún no se benefician de Emulator Suite y elabora un plan para incorporarlas.
- Crea tu propio checklist interno para revisar el entorno emulado antes de empezar un día de trabajo.
Bibliografía y referencias oficiales¶
- Introduction to Firebase Local Emulator Suite: https://firebase.google.com/docs/emulator-suite [page:1]
- Connect your app to the Cloud Firestore Emulator: https://firebase.google.com/docs/emulator-suite/connect_firestore [page:2]