firebase deploy
を実行すると、次のエラーメッセージが表示されます。
functions: HTTP Error: 400, Change of function trigger type or event provider is not allowed
firebase functions:delete yourFunction // this can be done via the Firebase Console as well
firebase deploy
基本的に、Cloud Functionsはすべての関数に対して常に同じトリガーを想定しています。つまり、作成された後は、すべての関数名が特定のトリガーに関連付けられているため、元のトリガーに固執する必要があります。したがって、トリガーを変更するには、最初にdeleting関数を使用してから、別のトリガーを使用して再度作成します。
これは、functions:delete
コマンドを使用して簡単に実行できます。
firebase functions:delete yourFunction
ドキュメント機能のより高度な使用例 も同様です。
これの解決策は、基本的にコメントを付けるか、関数を切り取り、関数ファイルを保存してデプロイすることです。この関数はFirebaseで削除されますが、その後、関数を挿入/コメント解除すると、再び正常にデプロイされます。このエラーは、関数を取得し、それが使用するトリガーのタイプ、つまりHTTP、データベース、または認証を変更したときに発生します。
最初に切り取る
/* exports.yourFunction = someTrigger... */
そして、その後、deploying( "firebase deploy")トリガーを置き換えます
exports.yourFunction = anotherTrigger...
Google Cloud PlatformコンソールのCloud Functionsパネルに移動して、そこから関数を削除することもできます。その後、Firebase CLIから通常どおり関数をアップロードできます。 firebaseコンソールに削除機能オプションがない理由はわかりません。