Исправление развертывания Cloud Functions
- У вас должен быть проект Firebase, подключенный к FlutterFlow.
- Убедитесь, что ваш проект использует тарифный план Blaze.
Cloud Functions позволяют выполнять серверный код в ответ на события, вызванные функциями Firebase, или на HTTPS-запросы. Различные ситуации могут привести к неисправности Cloud Functions, часто из-за проблем с настройкой или ошибок в коде скрипта Cloud Function.
Эта статья поможет разобраться с распространенными проблемами Cloud Functions в FlutterFlow и их решением.
Ошибки, отображаемые в FlutterFlow Builder
В FlutterFlow Builder могут возникать следующие ошибки:
Out of Date (Error)Not Deployed (Error)
Эти ошибки могут появляться по разным причинам. Ниже приведены скриншоты этих ошибок:
Ошибка устаревшей версии

Ошибка отсутствия развертывания

Основные проверки для устранения ошибок развертывания
-
Проверьте наличие необходимых разрешений у firebase@flutterflow.io
Чтобы FlutterFlow работал с вашим проектом без сбоев, убедитесь, что
firebase@flutterflow.ioимеет следующие разр ешения в вашем проекте Firebase:- Cloud Functions Admin
- Editor
- Service Account User
Чтобы добавить эти разрешения, выполните следующие шаги:
-
Перейдите в консоль Firebase и войдите в свою учетную запись.
-
Откройте проект и перейдите в раздел Project Settings > Users and Permissions.
-
В разделе Advanced Settings Permissions найдите
firebase@flutterflow.io, нажмите Edit и добавьте необходимые роли.

-
Проверьте несоответствие имени функции
Убедитесь, что имя функции в вашем коде точно совпадает с именем функции, определенным в FlutterFlow.
Например, в этом случае FlutterFlow ожидает
logoMaker, но в коде неверно используетсяdata.
-
Проверьте пользовательский код для Cloud Functions
Незначительные ошибки в коде пользовательских Cloud Functions могут препятствовать развертыванию.
-
Дважды проверьте код на наличие ошибок.
-
Протестируйте локально с помощью IDE или Firebase CLI.

-
-
Проверьте тарифный план Firebase (требуется Blaze Plan):
- Убедитесь, что проект Firebase использует Blaze Plan, а не Spark Plan.
- Проверьте статус оплаты в GCP. Даже если в Firebase отображается Blaze, проблемы с оплатой в GCP могут блокировать развертывание.
-
Проверьте, развертываются ли другие Cloud Functions:
- Если некоторые Cloud Functions (например, Push Notification или Stripe) развертываются успешно, это указывает на то, что настройка Firebase в целом правильная.
- Сосредоточьтесь на проверке кода и конфигурации конкретной функции.
-
Убедитесь, что выбранный регион соответствует проекту Firebase:
-
Регион, установленный для Cloud Function в FlutterFlow, должен совпадать с регионом проекта Firebase.
-
Не оставляйте регион как
[default].

подсказкаЕсли вы ранее развернули функции в неправильном регионе, удалите их, установите правильный регион и разверните заново.
-
-
Конфликты протоколов: HTTP против Callable Functions
Если вы изначально развернули функцию как 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-
Используйте сгенерированный файл
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
}
-
-
Убедитесь, что пакеты включены в
package.jsonЕсли вы используете сторонние пакеты (н апример,
axios), убедитесь, что они правильно добавлены в разделdependenciesвpackage.json:
-
Проверьте версии сторонних пакетов
Версии, указанные в вашем
package.json, должны соответствовать доступным версиям, перечисленным на npmjs.com.
-
Проверьте наличие неразвернутых правил и индексов Firebase:
- Неполные правила или индексы Firestore могут блокировать развертывание функций.
- Убедитесь, что все правила и индексы были развернуты из FlutterFlow.
Дополнительное устранение неисправностей и оптимизация:
-
Проблемы с конфигурацией триггеров
Если Cloud Functions не срабатывают:
Проверьте триггеры событий:
- Для триггеров Firestore: проверьте пути документов и имена коллекций.
- Для HTTP-функций: убедитесь в правильной настройке в FlutterFlow.
Проверьте разрешения и правила:
- Правила безопасности Firebase и разрешения проекта должны разрешать операции Cloud Function.
-
Тайм-ауты выполнения
-
Cloud Functions могут завершаться с ошибкой, если время выполнения превышает лимиты.
-
Установите пользовательскую длительность тайм-аута в FlutterFlow:

Для задач с длительной обработкой увеличьте длительность тайм-аута в конфигурации Cloud Function.
Настройка регионов Cloud Function в FlutterFlow также может оптимизировать производительность:
примечаниеБолее длительные тайм-ауты могут увеличить затраты на Firebase.
-
-
Задержки холодного старта
Cloud Functions могут отвечать медленнее после периодов неактивности:
- Используйте Cloud Scheduler, чтобы периодически вызывать функции и поддерживать их в теплом состоянии.
- Минимизируйте зависимости, чтобы уменьшить задержки холодного старта.
Следуя этому подробному руководству по устранению неисправностей, вы сможете решить большинство проблем, возникающих при работе с Cloud Functions.