Подключите свое приложение к эмулятору облачных функций

Перед подключением вашего приложения к функции эмулятора Cloud, убедитесь , что вы понимаете общий рабочий процесс Firebase Local Emulator Suite , и что вы установить и настроить локальную Emulator Suite , и пересматривать свои команды CLI .

Выберите проект Firebase

Пакет локального эмулятора Firebase эмулирует продукты для одного проекта Firebase.

Для того, чтобы выбрать проект для использования, прежде чем начать эмуляторы, в CLI выполнения firebase use в рабочем каталоге. Или, вы можете передать --project флаг каждой команды эмулятора.

Локальная Emulator люкс поддерживает эмуляцию реальных проектов Firebase и демонстрационные проекты.

Тип проекта Функции Использование с эмуляторами
Настоящий Настоящий проект - это тот, который вы настроили и активировали в консоли Firebase; у реального проекта есть живые ресурсы, такие как базы данных, сегменты хранилища, функции или любой другой ресурс, который вы настроили для этого проекта. При работе с реальными проектами вы можете запускать эмуляторы для любого или всех поддерживаемых продуктов в вашем проекте.

Для любых продуктов , которые вы не подражая, ваши приложения и код будет взаимодействовать с живой базой данных, хранения ведро, функции и т.д.
Демо В демонстрационном проекте нет конфигурации консоли Firebase и живых ресурсов.

Демонстрационные идентификаторы проекта имеют demo- - префикс.
При работе с демонстрационными проектами ваши приложения и код взаимодействуют только с эмуляторами. Если ваше приложение взаимодействует с ресурсом, для которого не запущен эмулятор, этот код завершится ошибкой.

Мы рекомендуем вам по возможности использовать демонстрационные проекты. Преимущества включают:

  • Более простая установка, так как вы можете запускать эмуляторы, даже не создавая проект Firebase.
  • Повышенная безопасность, поскольку, если ваш код случайно вызывает неэмулированные (производственные) ресурсы, нет никаких шансов на изменение данных, использование и выставление счетов.
  • Лучшая автономная поддержка, так как нет необходимости выходить в Интернет для загрузки конфигурации SDK.

Настройте свое приложение на взаимодействие с эмуляторами

Настройте свое приложение на вызываемые функции

Если прототип и тестовые мероприятия включают вызываемые функции бэкэнда , настраивать взаимодействие с функциями для облачной Firebase эмулятора , как это:

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")

Интернет v8

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

Интернет v9

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

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

Настройте свое приложение для эмуляции функций HTTPS

Каждая функция HTTPS в вашем коде будет обслуживаться локальным эмулятором с использованием следующего формата URL:

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

Например, простой helloWorld функция хоста по умолчанию порта и региона в будет подан по адресу:

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

Настройте свое приложение для эмуляции функций, запускаемых в фоновом режиме

Эмулятор Cloud Functions поддерживает запускаемые в фоновом режиме функции из следующих источников:

  • Эмулятор базы данных в реальном времени
  • Эмулятор Cloud Firestore
  • Эмулятор аутентификации
  • Эмулятор Pub / Sub

Чтобы запускать фоновые события, подключите свое приложение или тестовый код к эмуляторам с помощью SDK для вашей платформы.

Какие еще существуют инструменты для тестирования облачных функций?

Эмулятор Cloud Functions дополнен другими прототипами и инструментами тестирования:

  • Оболочка Cloud Functions, которая обеспечивает интерактивное итеративное прототипирование и разработку функций. Оболочка использует эмулятор Cloud Functions с интерфейсом в стиле REPL для разработки. Интеграция с эмуляторами Cloud Firestore или Realtime Database не предусмотрена. Используя оболочку, вы имитируете данные и выполняете вызовы функций для имитации взаимодействия с продуктами, которые Local Emulator Suite в настоящее время не поддерживает: Cloud Storage, Pub / Sub, Analytics, Remote Config, Storage, Auth и Crashlytics.
  • Firebase Test SDK для облачных функций, Node.js с фреймворком mocha для разработки функций. По сути, SDK тестирования облачных функций обеспечивает автоматизацию поверх оболочки облачных функций.

Вы можете узнать больше о функциях Облака оболочки и Облако функция Test SDK на тестовых функциях в интерактивном режиме и блок тестирования облачных функций .

Что дальше?