Экспериментальная поддержка 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 CLI, поддерживающая Dart в Cloud Functions for Firebase используя флаг --version :
`firebase --version`
Включите эксперимент в Firebase CLI.
firebase experiments:enable dartfunctions
Инициализируйте свой проект
- Выполнить:
bash 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 на вашей машине разработки и загружает сгенерированный бинарный файл непосредственно в функции Cloud Run .
После завершения развертывания вы увидите строку в логе, похожую на Function URL (hello-world(us-central1)): https://hello-world-<random-hash>.<region>.run.app
Загрузите этот URL-адрес в свой браузер, чтобы вызвать только что развернутую функцию Dart.
Следующие шаги
- Задайте параметры конфигурации, например, минимальное количество экземпляров.
- Узнайте больше о функциях HTTP и вызываемых функциях .
- Следуйте инструкциям в мастер-классе по функциям 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.