Не выкатываются облачные функции
- Проект Firebase подключён к FlutterFlow.
- Проект на тарифе Blaze.
Облачные функции выполняют серверный код в ответ на события Firebase или HTTP-запросы. Ломаются они обычно по двум причинам: неверная настройка проекта или ошибка в самом коде функции.
В билдере это видно как статус:
Out of Date (Error)Not Deployed (Error)


Что проверить
-
Права
firebase@flutterflow.ioНужны роли:
- Cloud Functions Admin
- Editor
- Service Account User
Как выдать: откройте консоль Firebase, перейдите в Project Settings > Users and Permissions, найдите
firebase@flutterflow.ioв Advanced Settings Permissions, нажмите Edit и добавьте роли.

-
Имя функции
Имя в коде должно точно совпадать с именем, заданным во FlutterFlow. В примере ниже билдер ждёт
logoMaker, а в коде написаноdata.
-
Код функции
Мелкая ошибка в коде блокирует выкатку целиком. Перечитайте код и прогоните его локально — в IDE или через Firebase CLI.

-
Тариф Firebase
Нужен Blaze, а не Spark. Проверьте и статус биллинга в Google Cloud: Firebase может показывать Blaze, а выкатку всё равно блокирует проблема с оплатой на стороне GCP.
-
Другие функции
Если push-уведомления или платежи выкатываются нормально, значит, с настройкой Firebase в целом порядок — копайте конкретную функцию.
-
Регион
Регион функции во FlutterFlow должен совпадать с регионом проекта Firebase. Значение
[default]оставлять нельзя.
советЕсли функции уже выкачены не в тот регион, удалите их, задайте нужный регион и выкатите заново.
-
Конфликт протоколов: HTTP и Callable
Функцию, выкаченную как HTTP, нельзя переделать в Callable — и наоборот. Ошибка выглядит так:
[makeUserAdmin(us-central1)] Changing from an HTTPS function to a callable function is not allowed. Please delete your function and create a new one instead.Что делать: удалить функцию в консоли Firebase, сменить тип во FlutterFlow и выкатить заново.
-
Файл
package.jsonИспользуйте сгенерированный файл как есть, если не нужны дополнительные пакеты. Он не должен быть пустым или содержать посторонние символы.
{ "name": "functions", "description": "Firebase Custom Cloud Functions", "engines": { "node": "18" }, "main": "index.js", "dependencies": { "firebase-admin": "^11.8.0", "firebase-functions": "^4.3.1" }, "private": true } -
Сторонние пакеты в зависимостях
Если код использует сторонний пакет — скажем,
axios, — он должен быть в секцииdependencies.
-
Версии пакетов
Указанные версии должны существовать — сверьтесь со списком версий на npmjs.com.

-
Правила и индексы Firestore
Невыкаченные правила и индексы блокируют выкатку функций. Выкатите их из FlutterFlow.
Функция не срабатывает
Проверьте настройку триггеров:
- для триггеров Firestore — путь к документу и имя коллекции;
- для HTTP-функций — настройку вызова во FlutterFlow;
- права проекта и правила безопасности: они должны разрешать функции делать то, что она делает.
Функция обрывается по таймауту
Функция падает, если не укладывается в отведённое время. Таймаут задаётся во FlutterFlow:

Там же выбирается регион — от него зависит задержка:

Чем больше таймаут, тем дороже обходятся долгие вызовы.
Долгий первый вызов
После простоя функция отвечает медленнее — это холодный старт. Помогают две вещи: периодический вызов через Cloud Scheduler, чтобы функция не «засыпала», и меньше зависимостей в коде.