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

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

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

Требования

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

 `firebase --version`

Включите эксперимент в CLI Firebase

firebase experiments:enable dartfunctions

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

  1. Запущено:

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

  3. Когда появится вопрос "Do you want to install dependencies now?" (Установить зависимости?), ответьте "Yes" (Да).

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

Посмотрите код, сгенерированный в 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, CLI Firebase запускает этап компиляции Dart на компьютере для разработки и загружает сгенерированный двоичный файл непосредственно в функции 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, отправьте нам отчет. Это поможет нам улучшить и расширить экспериментальный Dart SDK.