Firebaseでブラウザコンソールの導きに従うと
初手でfirebase-toolsをグローバルインストールさせられそうになります。そんなのやだよプロジェクト毎に持ちたいし、Firebaseのアカウント情報も~/.configへまとめてじゃなく、プロジェクトディレクトリ毎の.config内へ個別に持ちたいよ、という時の手順メモ。
なおnpmとdirenvは既に入っているものとし、対象のプロジェクトディレクトリで手順を開始するものとします。
XDG_CONFIG_HOMEの設定
dotenv
XDG_CONFIG_HOME=.config
.env
プロジェクトディレクトリへ移動するとdirenvが自動的に.envを読んでXDG_CONFIG_HOMEを設定してくれます。.envを作らず.envrcで直接設定してもいいんですが、Docker Composeからも読める.envに環境変数設定を集約する事が私は多いです。
## パッケージのlocalインストール
npm init -y
npm install --save-dev firebase-tools
npx firebase -V
ところでnpxってリモートパッケージ実行の無効化オプションとかないんでしょうか。そのうちtypo狙いの悪意あるnpmパッケージとかを実行しそうで怖いですよね。私はfirebaseをなぜかfirebaesにtypoする事が多いので攻撃者の皆さんは狙わないよう伏してお願い申し上げます。
そういう場合は古式ゆかしくscriptsに書いてnpm run firebaseするのが良いんだと思います。
FirebaseへCLIからのログイン
npx firebase login
CLIからのログイン後にプロジェクトディレクトリへ
jq .user .config/configstore/firebase-tools.json
のようなjsonが生成されていれば成功です。(userプロパティには現在ログイン状態のユーザー情報が格納される)
npx firebase projects:list
で現在のアカウントから見える既存のプロジェクトの一覧も確認しておきましょう。
npx firebase init
後はinitのウィザードに従って既存のプロジェクトの中から使用するプロジェクトを選択するなり、新しくFirebaseプロジェクトを作るなり、よしなに
ところで、本稿では選択していませんがコンテナで環境を隔離してしまうのも一つの選択肢です。
see also