web-dev-qa-db-ja.com

Cloud Base for Firebaseエラー:「400、関数トリガータイプまたはイベントプロバイダーの変更は許可されていません」

firebase deployを実行すると、次のエラーメッセージが表示されます。

functions: HTTP Error: 400, Change of function trigger type or event provider is not allowed
24

TL; DR

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...

将来これに出くわした人のために、Cloud Functionsコンソールには削除ボタンがあります。 screenshot of the right hand side's "more" options

3
Adrian Murray

Google Cloud PlatformコンソールのCloud Functionsパネルに移動して、そこから関数を削除することもできます。その後、Firebase CLIから通常どおり関数をアップロードできます。 firebaseコンソールに削除機能オプションがない理由はわかりません。

1
Ricky Gomes