Firebase Functionsにコードをデプロイしようとした際、突然以下のようなエラーが出てデプロイが失敗することがあります。
Bash
Error: Failed to parse build specification:
- FirebaseError Unexpected key extensions. You may need to install a newer version of the Firebase CLI.
このエラーが発生するとデプロイが完全にストップしてしまうため焦りますが、原因と対処法は非常にシンプルです。
この記事では、エラーの原因と、環境に合わせた具体的な解決手順を分かりやすく解説します。
エラーの原因は?
エラーメッセージにある通り、原因は「Firebase CLI(firebase-tools)のバージョンが古いこと」です。
firebase.json やプロジェクトの設定内に extensions というキー(Firebase Extensionsの構成設定など)が含まれている場合、古いバージョンのFirebase CLIではこの記述を正しく解析(パース)できず、構文エラーとして弾いてしまいます。
そのため、Firebase CLIを最新バージョンにアップデートすることで解決します。
【環境別】Firebase CLIのアップデート手順
お使いの開発環境に合わせて、以下のいずれかの方法で Firebase CLI を最新版に更新してください。
パターン1:npmでグローバルインストールしている場合
多くの開発者がこの方法でインストールしています。ターミナルで以下のコマンドを実行してください。
Bash
npm install -g firebase-tools
※ MacやLinux環境で権限エラー(EACCESなど)が出る場合は、コマンドの先頭に sudo をつけて実行してください。
Bash
sudo npm install -g firebase-tools
パターン2:スタンドアロンのバイナリ(curl等)で導入している場合
MacやLinuxでバイナリインストールスクリプトを使用した場合は、以下のコマンドでアップグレードを実行できます。
Bash
curl -sL https://firebase.tools | upgrade=true bash
パターン3:プロジェクトローカル(package.json)で管理している場合
プロジェクト固有の依存関係として firebase-tools をインストールしている場合は、プロジェクトのルートディレクトリで以下を実行します。
Bash
# npmの場合
npm install --save-dev firebase-tools
# yarnの場合
yarn add -D firebase-tools
アップデートの確認と再デプロイ
アップデートが完了したら、バージョンが正しく更新されたか確認しましょう。
Bash
firebase --version
※エラーが発生した時点よりも新しいバージョン(あるいは最新バージョン)になっていればOKです。
バージョンアップを確認できたら、再度デプロイコマンドを実行します。
Bash
firebase deploy --only functions
これで「Unexpected key extensions」のエラーが出なくなり、無事にビルドとデプロイが通るはずです。
まとめ
Firebaseは頻繁に機能追加や仕様変更が行われるため、CLIのバージョンが古いと新しい設定構文に対応できずエラーになるケースが多々あります。
「デプロイ時に見慣れない構文エラーが出たら、まずは firebase-tools のアップデートを試す」と覚えておくと、今後のトラブルシューティングもスムーズになりますよ!


コメント