Облачные функции для ошибки Firebase: "400, изменение типа триггера функции или поставщика событий запрещено"
Когда я запускаю firebase deploy я получаю это сообщение об ошибке:
functions: HTTP Error: 400, Change of function trigger type or event provider is not allowed
Ответ 1
TL; DR
firebase functions:delete yourFunction
объяснение
По сути, Cloud Functions ожидает один и тот же триггер для каждой функции все время, то есть после того, как она создана, она должна придерживаться своего исходного триггера, потому что каждое имя функции связано с определенным триггером. Поэтому триггер можно изменить, только сначала удалив функцию, а затем создав ее снова с другим триггером.
Теперь это можно легко сделать с помощью functions:delete команда functions:delete:
Решением этой проблемы является комментирование или отключение вашей функции, а затем сохранение файла функций и его развертывание. Функция будет удалена в Firebase, но после этого вы можете вставить/раскомментировать свою функцию, и она снова будет нормально развернута. Эта ошибка возникает, когда вы берете функцию и изменяете тип триггера, который она использует, то есть HTTP, базу данных или аутентификацию.
Сначала вырежьте это
/* exports.yourFunction = someTrigger... */
А затем, после развертывания ("развертывание firebase"), замените ваш триггер
exports.yourFunction = anotherTrigger...
Ответ 2
Для тех, кто сталкивается с этим в будущем, консоль Cloud Functions теперь предлагает кнопку удаления.
Ответ 3
Вы также можете перейти на панель "Облачные функции" в консоли Google Cloud Platform и удалить свою функцию оттуда. После этого вы можете загрузить функцию в обычном режиме из командной строки Firebase. Не уверен, почему у них нет функции удаления в консоли Firebase.