はじめに
新しいローカルプロジェクトを新しいFirebaseプロジェクトにデプロイしようとしたところ、firebase init を実行すると以前のFirebaseプロジェクトが勝手に選択されてしまい、プロジェクトを選ぶ画面が表示されない問題にハマりました。
この記事では、原因と解決方法をまとめます。
発生した問題
新しいプロジェクトフォルダで firebase init を実行すると、以下のように以前のプロジェクトが自動で選択されてしまう。
=== Project Setup
First, let's associate this project directory with a Firebase project.
You can create multiple project aliases by running firebase use --add,
i Using project old-project (old-project).
プロジェクトの選択画面が出ず、古いプロジェクトが勝手に使われてしまいます。
試したけどダメだったこと
.firebaserc を削除
ホームディレクトリ内の .firebaserc に古いプロジェクトIDが書かれているのが原因かと思い削除しましたが、変わらず自動選択されました。
原因
Firebase CLIのグローバル設定ファイルに原因がありました。
以下のファイルを確認します。
~/.config/configstore/firebase-tools.json
中身を見ると activeProjects という項目があり、ここにディレクトリとプロジェクトの紐付けが記録されています。
"activeProjects": {
"/Users/ユーザー名": "old-project",
}
ホームディレクトリ(/Users/ユーザー名)が古いプロジェクトに紐付いていたため、その配下のすべてのフォルダで old-project が自動選択されていました。
解決方法
下記の記事を参考にしました。
https://qiita.com/Todev89/items/2c67f4f8be7f55caafd8
1. firebase-tools.json を編集
nano ~/.config/configstore/firebase-tools.json
2. activeProjects から不要な紐付けを削除・修正
- ホームディレクトリの行を削除する
- 新しいプロジェクトのパスがあれば、正しいプロジェクトIDに変更する
3. 改めて firebase init hosting を実行
firebase init hosting
今度はプロジェクト選択画面が表示されるようになります。
-
Please select an option:→ Use an existing project - 一覧から新しいプロジェクトを選択
-
What do you want to use as your public directory?→dist(Viteの場合) -
Configure as a single-page app?→ Yes -
Set up automatic builds and deploys with GitHub?→ No
4. ビルドしてデプロイ
npm run build
firebase deploy
まとめ
-
firebase initで古いプロジェクトが自動選択される原因は~/.config/configstore/firebase-tools.jsonのactiveProjectsにある - 特にホームディレクトリがプロジェクトに紐付いていると、配下の全フォルダに影響する
-
firebase-tools.jsonを直接編集して不要な紐付けを削除すれば解決する