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

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

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

Требования

Убедитесь, что у вас установлена версия CLI Firebase, которая поддерживает 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.