❤️‍🔥

firebase initの初期化でホームディレクトリから変えられなくなったときの対策

に公開

こんにちは、ワニかず@40歳 出戻りエンジニアです。
Firebaseで以下のように複数のプロジェクトを作成した状態で

Firebase CLIの「firebase init functions」を実行したときに、
それぞれのプロジェクトでフォルダを分けたいのに、何度やっても

You're about to initialize a Firebase project in this directory:

  /Users/xxxxxxxx

Before we get started, keep in mind:

と表示されて、何をやっても
/Users/xxxxxxxxというホームディレクトリから変えられない現象に遭遇しハマりました。
その時の回避策についてまとめました。

通常は?

# 目的のディレクトリに移動
cd /Users/xxxxxxx/test

# functions ディレクトリに移動して初期化
cd functions
firebase init functions

で、目的のフォルダで初期化処理が実行されるはずなのですが、
他のプロジェクトの初期化の際に、ホームディレクトリで「firebase init functions」を実行してしまった結果、このようなことが起きることが後々判明しました。

ですので、
ホームディレクトリで「firebase init functions」を実行してしまった場合は、傷が浅いうちに、他のフォルダに設定を引っ越ししたほうが良いと思います。(体験談)

回避策

.firebasercfirebase.json
「firebase init functions」を実行したいフォルダに作る、
という回避策をとります。

  1. Project IDを取得する
    ターミナルで
firebase projects:list

を実行すると、

┌──────────────────────┬─────────────────────────┬────────────────┬──────────────────────┐
│ Project Display Name │ Project ID              │ Project Number │ Resource Location ID │
├──────────────────────┼─────────────────────────┼────────────────┼──────────────────────┤
│ xxxxxx               │ ○○○○○○○○○○○○○○○○○       │ 814582607983[Not specified]      │
├──────────────────────┼─────────────────────────┼────────────────┼──────────────────────┤
│ △△△△△△               │ □□□□□□□□□□□□□ (current)1077350581572[Not specified]      │
└──────────────────────┴─────────────────────────┴───────────────

というような形で表示される
○○○○○○○○○○○○○○○○○

□□□□□□□□□□□□□
Project IDです。

今回は「□□□□□□□□□□□□□」のプロジェクトを
「firebase init functions」で初期化したいとします。

  1. .firebasercfirebase.jsonを作成しinit
# 目的のディレクトリに移動
cd /Users/xxxxxxx/test

# .firebaserc ファイルを作成して、プロジェクトを指定
cat > .firebaserc << EOF
{
  "projects": {
    "default": "□□□□□□□□□□□□□"
  }
}
EOF

# firebase.json を作成
cat > firebase.json << EOF
{
  "functions": {
    "source": "functions"
  }
}
EOF

# functions ディレクトリに移動して初期化
cd functions
firebase init functions --project=□□□□□□□□□□□□□

これで、目的のフォルダで初期化ができると思いますが、
複数のプロジェクトを作る際は、処理が煩雑になるので、
ホームディレクトリで「firebase init functions」を実行してしまっていた場合は、
早めに引っ越しをすることをおすすめします。

おしまいに

なんだかんだ、半日近くこの作業に費やしてしまいました。

Discussion