Эта страница была переведа с помощью Cloud Translation API.
Switch to English

Запускать функции локально

Firebase CLI включает эмулятор Cloud Functions, который может эмулировать следующие типы функций:

  • HTTPS функции
  • Вызываемые функции
  • Облачные функции Firestore

Вы можете запускать функции локально, чтобы проверить их перед развертыванием в рабочей среде.

Установите Firebase CLI

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

npm install -g firebase-tools

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

  • firebase-admin версии 8.0.0 или выше.
  • firebase-functions версии 3.0.0 или выше.

Установите учетные данные администратора (необязательно)

Если вы хотите, чтобы ваши функциональные тесты взаимодействовали с API-интерфейсами Google или другими API-интерфейсами Firebase через Firebase Admin SDK , вам может потребоваться настроить учетные данные администратора.

  • Триггеры Cloud Firestore и Realtime Database уже имеют достаточные учетные данные и не требуют дополнительной настройки.
  • Все другие API, включая API-интерфейсы Firebase, такие как Аутентификация и FCM, или API Google, такие как Cloud Translation или Cloud Speech, требуют шагов настройки, описанных в этом разделе. Это применимо, используете ли вы функции shell или firebase emulators:start .

Чтобы установить учетные данные администратора для эмулируемых функций:

  1. Откройте панель «Учетные записи служб» в консоли Google Cloud.
  2. Убедитесь, что выбрана учетная запись службы App Engine по умолчанию , и используйте меню параметров справа, чтобы выбрать « Создать ключ» .
  3. При появлении запроса выберите тип ключа JSON и нажмите кнопку « Создать» .
  4. Установите учетные данные Google по умолчанию, чтобы они указывали на загруженный ключ:

    Юникс

     $ export GOOGLE_APPLICATION_CREDENTIALS="path/to/key.json"
    
    $ firebase emulators:start
     

    Windows

     $ set GOOGLE_APPLICATION_CREDENTIALS=path\to\key.json
    
    $ firebase emulators:start
     

После выполнения этих шагов ваши функциональные тесты могут получить доступ к Firebase и API Google с помощью Admin SDK . Например, при тестировании триггера аутентификации эмулируемая функция может вызывать admin.auth().getUserByEmail(email) .

Настройка конфигурации функций (опционально)

Если вы используете переменные конфигурации пользовательских функций, сначала запустите команду, чтобы получить пользовательскую конфигурацию (запустите ее в каталоге functions ) в вашей локальной среде:

 firebase functions:config:get > .runtimeconfig.json
# If using Windows PowerShell, replace the above with:
# firebase functions:config:get | ac .runtimeconfig.json
firebase functions:shell
 

Запустите пакет эмулятора

Чтобы запустить эмулятор Cloud Functions, используйте команду emulators:start :

firebase emulators:start

Команда emulators:start запустит эмуляторы для функций Cloud, Cloud Firestore, Realtime Database и Firebase Hosting на основе продуктов, которые вы инициализировали в своем локальном проекте с помощью firebase init . Если вы хотите запустить определенный эмулятор, используйте флаг --only :

firebase emulators:start --only functions

Если вы хотите запустить набор тестов или скрипт тестирования после запуска эмуляторов, используйте команду emulators:exec :

firebase emulators:exec "./my-test.sh"

Взаимодействие с другими сервисами

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

Облачный Пожарный Магазин

Если у вас есть облачные функции, которые используют Firebase Admin SDK для записи в Cloud Firestore, эти записи будут отправлены в эмулятор Cloud Firestore, если он работает. Если эти записи инициируют дальнейшие облачные функции, они будут запущены в эмуляторе облачных функций.

Firebase хостинг

Если вы используете облачные функции для генерации динамического контента для Firebase Hosting , firebase emulators:start используют ваши локальные функции HTTP в качестве прокси для хостинга.

логирование

Эмулятор передает журналы от ваших функций к окну терминала, где они запускаются. Он отображает весь вывод console.log() , console.info() , console.error() и console.warn() внутри ваших функций.

Следующие шаги

Полный пример использования набора эмуляторов Firebase см. В примере быстрого запуска тестирования .