Экспериментальная поддержка Dart в Cloud Functions for Firebase позволяет создавать полнофункциональные приложения с помощью Flutter и Dart. Обменивайтесь данными с другими сервисами Firebase с помощью нового Firebase Admin Dart SDK.
Чтобы начать работу с функциями Dart, выполните задачи по настройке, описанные в этом руководстве, а затем изучите функции HTTP и вызываемые функции Dart.
Требования
- Dart SDK 3.9 или более поздней версии
- Firebase CLI (версия 15.15.0 или более поздняя)
Убедитесь, что у вас установлена версия интерфейса командной строки Firebase, которая поддерживает Dart в Cloud Functions for Firebase с флагом --version:
`firebase --version`
Как включить эксперимент в интерфейсе командной строки Firebase
firebase experiments:enable dartfunctions
Инициализация проекта
Запущено:
firebase init functionsВыберите язык Dart.
На вопрос "Хотите установить зависимости сейчас?" ответьте "Да".
Как посмотреть код функции
Посмотрите код, сгенерированный в 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.
Дальнейшие действия
- Задайте параметры конфигурации, например минимальное количество экземпляров.
- Подробнее о функциях HTTP и вызываемых функциях…
- Выполните практическую работу по функциям Dart Dart Functions codelab.
- Используйте экспериментальный Dart Admin SDK, чтобы взаимодействовать с другими сервисами Firebase, например Cloud Firestore, из своей функции.
- Помимо HTTP-функций
onRequest, вы можете попробовать примерonCallили примерonCallс потоковой передачей, чтобы вызывать функции непосредственно из приложения (учитывая особое ограничение, касающееся метода вызова).
Ограничения
- Триггер
onCallможно развернуть, но нельзя вызвать из клиентских SDK с помощью таких методов, как httpsCallable, которые идентифицируют функции по имени. Вместо этого можно использовать такие методы, как httpsCallableFromURL, и передать полный URL Cloud Run для функции. - Другие триггеры, например триггеры Firestore, можно запускать в локальном наборе эмуляторов, но нельзя развертывать.
- В консоли Firebase не отображаются функции Dart во время экспериментального выпуска. Функции Dart можно посмотреть на странице функций Cloud Run в консоли Cloud.
Если вы обнаружите проблемы при работе с функциями Dart, отправьте отчет команде, чтобы помочь нам улучшить и расширить экспериментальный пакет SDK Dart.