LoginSignup
7

More than 3 years have passed since last update.

Firebase CLI の複数アカウント運用を楽にする設定

Last updated at Posted at 2018-11-25

複数アカウントでFirebaseCLIを使う

こちらで紹介されていた方法ですが、端末買い替え等の際の備忘録として実際に行った手順を記載しておきます。

環境: macOS Mojave 10.14.1

direnv のインストール

公式サイトの手順に従って、direnv をインストールします。

direnv -- Unclutter your .profile

今回は MacPorts でインストールしました。

bash
sudo port install direnv

direnv の設定

こちらも direnv の公式サイトに各種シェル毎に手順が記載されています。
bash を利用している場合は下記の通り。

bash
echo -n "eval \"\$(direnv hook bash)\"" >> ~/.bashrc
source ~/.bashrc

firebase-tools のインストール

既にインストール済でしたが、一応記載。

bash
sudo port install nodejs11
npm install -g firebase-tools

Firebase のプロジェクトディレクトリ作成

各アカウント用のディレクトリを作成します。
example.local と example.private それぞれを別アカウントで利用する場合。
※ アカウント毎のディレクトリ(account.A, account.B)は分かりやすさのためで、特に必要というわけではありません。

bash
mkdir -p ~/firebase/account.A/example.local/
mkdir -p ~/firebase/account.B/example.private/

各プロジェクト配下にログイン情報等が配置されるディレクトリを作成。
(説明用に2回に分けていますが、下記のみで十分です)

bash
mkdir -p ~/firebase/account.A/example.local/.config
mkdir -p ~/firebase/account.B/example.private/.config

direnv 設定ファイル作成

通常は ~/.config 配下にログイン情報のファイルが作成されるようですが、これを環境変数 XDG_CONFIG_HOME で上書きできるそうなので、各プロジェクトディレクトリ配下の .config ディレクトリを参照するように設定します。

bash
# account.A 用
cd ~/firebase/account.A/example.local
echo "export XDG_CONFIG_HOME=\$(pwd)/.config" > .envrc
direnv allow .

# account.B 用
cd ~/firebase/account.B/example.private
echo "export XDG_CONFIG_HOME=\$(pwd)/.config" > .envrc
direnv allow .

これで、各プロジェクトディレクトリに移動すると XDG_CONFIG_HOME が書き換わり、他のディレクトリに移動すると元に戻ります。

bash
$ cd ~/firebase/account.A/example.local
direnv: loading .envrc
direnv: export +XDG_CONFIG_HOME

$ cd ..
direnv: unloading

Firebase プロジェクトの初期化

あとは各ディレクトリで login / init するだけです。

bash
cd ~/firebase/account.A/example.local
firebase login
firebase init

cd ~/firebase/account.B/example.private
firebase login
firebase init

これで、終わりです。

個人用と会社用が同じマシンにあるのはあまりよろしくないですし、そういうケースは少ないと思いますが、静的サイト用とアプリ用のような分け方は結構あると思うので、これは非常に便利です。

参考

複数アカウントでFirebaseCLIを使う

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
What you can do with signing up
7