Начало работы с экспериментальным Dart SDK

Экспериментальная поддержка Dart в Cloud Functions for Firebase позволяет создавать полнофункциональные приложения с помощью Flutter и Dart. Обменивайтесь данными с другими сервисами Firebase с помощью нового Firebase Admin Dart SDK.

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

Требования

Убедитесь, что у вас установлена версия интерфейса командной строки Firebase, которая поддерживает Dart в Cloud Functions for Firebase с флагом --version:

 `firebase --version`

Как включить эксперимент в интерфейсе командной строки Firebase

firebase experiments:enable dartfunctions

Инициализация проекта

  1. Запущено:

    firebase init functions
    
  2. Выберите язык Dart.

  3. На вопрос "Хотите установить зависимости сейчас?" ответьте "Да".

Как посмотреть код функции

Посмотрите код, сгенерированный в functions/bin/server.dart (или в точке входа). В этом коде показана простая функция HTTP.

Обратите внимание, что в примере кода максимальное количество экземпляров для функции helloWorld задано равным 10 с помощью конструктора HttpsOptions. Подробнее о параметрах выполнения можно узнать в разделе Как задать параметры выполнения.

Как тестировать локально

firebase emulators:start

После загрузки Local Emulator Suite вы увидите строку журнала, например functions http function initialized (http://127.0.0.1:5001/<url>). Загрузите этот URL в браузере, чтобы вызвать локально эмулируемую функцию Dart.

Если вы измените код Dart, Firebase Local Emulator Suite обнаружит это и автоматически перезагрузит функцию.

Развертывание

firebase deploy --only functions

Процесс развертывания для Dart отличается от функций Node.js или Python. Вместо того чтобы загружать исходный код для сборки в Cloud Build, Firebase CLI выполняет компиляцию Dart на вашем компьютере для разработки и загружает сгенерированный исполняемый файл непосредственно в Functions Cloud Run.

Когда развертывание будет завершено, вы увидите строку журнала, похожую на Function URL (hello-world(us-central1)): https://hello-world-<random-hash>.<region>.run.app.

Загрузите этот URL в браузере, чтобы вызвать развернутую функцию Dart.

Дальнейшие действия

Ограничения

  • Триггер onCall можно развернуть, но нельзя вызвать из клиентских SDK с помощью таких методов, как httpsCallable, которые идентифицируют функции по имени. Вместо этого можно использовать такие методы, как httpsCallableFromURL, и передать полный URL Cloud Run для функции.
  • Другие триггеры, например триггеры Firestore, можно запускать в локальном наборе эмуляторов, но нельзя развертывать.
  • В консоли Firebase не отображаются функции Dart во время экспериментального выпуска. Функции Dart можно посмотреть на странице функций Cloud Run в консоли Cloud.

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