HTTPSリクエストトリガーとして定義していた関数を、PubSubスケジュールトリガーとしてデプロイしようとした際に発生しました。
// before
export const helloWorld = functions
.https
.onRequest((request, response) => {
response.send("Hello from Firebase!");
});
// after
export const helloWorld = functions
.pubsub
.schedule('every day 03:00')
.timezone('Asia/Tokyo')
.onCall((context) => {
console.log("Hello from Firebase!");
});
$ firebase deploy --only functions
...
HTTP Error: 400, Change of function trigger type or event provider is not allowed
...
解決方法
対象の関数を削除し、再度デプロイすると、問題なくデプロイできます。
# 関数の削除 ( HTTPSリクエストトリガー )
$ firebase functions:delete helloWorld
# 関数のデプロイ ( PubSubスケジュールトリガー )
$ firebase deploy --only functions:helloWorld