6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

firebase-toolsをプロジェクトローカルにインストールしてアカウント情報も個別に持つ

Last updated at Posted at 2021-04-09

Firebaseでブラウザコンソールの導きに従うと

スクリーンショット 2021-04-09 15.46.52.png

初手でfirebase-toolsをグローバルインストールさせられそうになります。そんなのやだよプロジェクト毎に持ちたいし、Firebaseのアカウント情報も~/.configへまとめてじゃなく、プロジェクトディレクトリ毎の.config内へ個別に持ちたいよ、という時の手順メモ。

なおnpmdirenvは既に入っているものとし、対象のプロジェクトディレクトリで手順を開始するものとします。

XDG_CONFIG_HOMEの設定

.envrc
dotenv
.env
XDG_CONFIG_HOME=.config
.gitignore
.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

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?