Entérate de todos los anuncios de Firebase Summit y descubre cómo Firebase puede ayudarte a acelerar el desarrollo de las apps y a ejecutarlas con confianza. Más información

Conecte su aplicación y comience a crear prototipos

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

Base de

Antes de comenzar con Firebase Local Emulator Suite, asegúrese de haber creado un proyecto de Firebase, configurado su entorno de desarrollo y seleccionado e instalado los SDK de Firebase para su plataforma de acuerdo con los temas de Introducción a Firebase para su plataforma: Apple , Android o Web .

Prototipo y prueba

Local Emulator Suite contiene varios emuladores de productos, como se describe en Introducción a Firebase Local Emulator Suite . Puede crear prototipos y realizar pruebas con emuladores individuales, así como con combinaciones de emuladores, como mejor le parezca, correspondientes a los productos de Firebase que está usando en producción.

Interacción entre la base de datos de Firebase y los emuladores de funciones
Emuladores de bases de datos y funciones en la nube como parte de la suite completa de emuladores locales .

Para este tema, para presentar el flujo de trabajo de Local Emulator Suite, supongamos que está trabajando en una aplicación que usa una combinación típica de productos: una base de datos de Firebase y funciones en la nube activadas por operaciones en esa base de datos.

Después de inicializar localmente su proyecto de Firebase, el ciclo de desarrollo con Local Emulator Suite normalmente constará de tres pasos:

  1. Funciones de prototipo de forma interactiva con los emuladores y la interfaz de usuario de Emulator Suite.

  2. Si usa un emulador de base de datos o el emulador de Cloud Functions, realice un solo paso para conectar su aplicación a los emuladores.

  3. Automatice sus pruebas con los emuladores y scripts personalizados.

Inicializar localmente un proyecto de Firebase

Asegúrese de instalar la CLI o actualizar a su última versión .

curl -sL firebase.tools | bash

Si aún no lo ha hecho, inicialice el directorio de trabajo actual como un proyecto de Firebase, siguiendo las indicaciones en pantalla para especificar que está usando Cloud Functions y Cloud Firestore o Realtime Database :

firebase init

El directorio de su proyecto ahora contendrá archivos de configuración de Firebase, un archivo de definición de reglas de seguridad de Firebase para la base de datos, un directorio de functions que contiene el código de funciones de la nube y otros archivos de soporte.

Prototipar interactivamente

Local Emulator Suite está diseñado para permitirle crear rápidamente prototipos de nuevas funciones, y la interfaz de usuario integrada de Suite es una de sus herramientas de creación de prototipos más útiles. Es un poco como tener la consola Firebase ejecutándose localmente.

Con la interfaz de usuario de Emulator Suite, puede iterar el diseño de una base de datos, probar diferentes flujos de datos que involucran funciones en la nube, evaluar los cambios en las reglas de seguridad, verificar los registros para confirmar el rendimiento de sus servicios de back-end y más. Luego, si desea comenzar de nuevo, simplemente borre su base de datos y comience de nuevo con una nueva idea de diseño.

Todo está disponible cuando inicia Local Emulator Suite con:

firebase emulators:start

Para crear un prototipo de nuestra aplicación hipotética, configuremos y probemos una función básica en la nube para modificar las entradas de texto en una base de datos, y creemos y completemos esa base de datos en la interfaz de usuario de Emulator Suite para activarla.

  1. Cree una función en la nube activada por escrituras en la base de datos editando el archivo functions/index.js en el directorio de su proyecto. Reemplace el contenido del archivo existente con el siguiente fragmento. Esta función escucha los cambios en los documentos de la colección de messages , convierte el contenido del campo original de un documento a mayúsculas y almacena el resultado en el campo de uppercase de ese documento.
  2.   const functions = require('firebase-functions');
    
      exports.makeUppercase = functions.firestore.document('/messages/{documentId}')
          .onCreate((snap, context) => {
            const original = snap.data().original;
            console.log('Uppercasing', context.params.documentId, original);
            const uppercase = original.toUpperCase();
            return snap.ref.set({uppercase}, {merge: true});
          });
      
  3. Inicie Local Emulator Suite con firebase emulators:start . Los emuladores de bases de datos y Cloud Functions se inician, configurados automáticamente para interoperar.
  4. Vea la interfaz de usuario en su navegador en http://localhost:4000 . El puerto 4000 es el predeterminado para la interfaz de usuario, pero verifique los mensajes de terminal generados por Firebase CLI. Tenga en cuenta el estado de los emuladores disponibles. En nuestro caso, se estarán ejecutando los emuladores Cloud Functions y Cloud Firestore.
    Mi imagen
  5. En la interfaz de usuario, en la pestaña Firestore > Datos , haga clic en Iniciar colección y siga las indicaciones para crear un nuevo documento en una colección de messages , con nombre de campo original y test de valor. Esto activa nuestra función de nube. Observe que aparece un nuevo campo en uppercase en breve, completado con la cadena "PRUEBA".
    Mi imagenMi imagen
  6. En la pestaña Firestore > Solicitudes , examine las solicitudes realizadas a su base de datos emulada, incluidas todas las evaluaciones de las reglas de seguridad de Firebase realizadas como parte del cumplimiento de esas solicitudes.
  7. Verifique la pestaña Registros para confirmar que su función no tuvo errores al actualizar la base de datos.

Puede iterar fácilmente entre su código de función en la nube y las ediciones interactivas de la base de datos hasta que obtenga el flujo de datos que está buscando, sin tocar el código de acceso a la base de datos en la aplicación, recompilar y volver a ejecutar conjuntos de pruebas.

Conecta tu aplicación a los emuladores

Cuando haya hecho un buen progreso con la creación de prototipos interactivos y se haya decidido por un diseño, estará listo para agregar un código de acceso a la base de datos a su aplicación mediante el SDK adecuado. Seguirá usando la pestaña de la base de datos y, para las funciones, la pestaña Registros en la interfaz de usuario de Emulator Suite para confirmar que el comportamiento de su aplicación es correcto.

Recuerde que Local Emulator Suite es una herramienta de desarrollo local. Las escrituras en sus bases de datos de producción no activarán las funciones que está creando prototipos localmente.

Para cambiar a que su aplicación realice escrituras en la base de datos, deberá apuntar sus clases de prueba o la configuración en la aplicación al emulador de Cloud Firestore.

Androide
// 10.0.2.2 is the special IP address to connect to the 'localhost' of
// the host computer from an Android emulator.
FirebaseFirestore firestore = FirebaseFirestore.getInstance();
firestore.useEmulator("10.0.2.2", 8080);

FirebaseFirestoreSettings settings = new FirebaseFirestoreSettings.Builder()
        .setPersistenceEnabled(false)
        .build();
firestore.setFirestoreSettings(settings);
Rápido
let settings = Firestore.firestore().settings
settings.host = "localhost:8080"
settings.isPersistenceEnabled = false 
settings.isSSLEnabled = false
Firestore.firestore().settings = settings

Web version 9

import { getFirestore, connectFirestoreEmulator } from "firebase/firestore";

// firebaseApps previously initialized using initializeApp()
const db = getFirestore();
connectFirestoreEmulator(db, 'localhost', 8080);

Web version 8

// Firebase previously initialized using firebase.initializeApp().
var db = firebase.firestore();
if (location.hostname === "localhost") {
  db.useEmulator("localhost", 8080);
}

Automatice sus pruebas con scripts personalizados

Ahora, para el último paso general del flujo de trabajo. Una vez que haya creado un prototipo de su función en la aplicación y parezca prometedora en todas sus plataformas, puede pasar a la implementación y prueba finales. Para pruebas unitarias y flujos de trabajo de CI, puede iniciar emuladores, ejecutar pruebas con secuencias de comandos y apagar emuladores en una sola llamada con el comando exec :

firebase emulators:exec "./testdir/test.sh"

Explore emuladores individuales con más profundidad

Ahora que ha visto cómo se ve el flujo de trabajo básico del lado del cliente, puede continuar con los detalles sobre los emuladores individuales en la Suite, incluido cómo usarlos para el desarrollo de aplicaciones del lado del servidor:

¿Qué sigue?

Asegúrese de leer los temas relacionados con emuladores específicos vinculados anteriormente. Después: