モチベーション
-
firebase-tools
を使うにはfirebase login
で事前にログインしておかないといけない- デフォルトだと
$HOME/.config
に置かれるのでログインユーザにつき1つしかログインしておけない
- デフォルトだと
-
別のGoogleアカウントを使用する、複数のプロジェクトを行き来するのに都合が悪い
- うっかり違うアカウントで
firebase deploy
しても「アカウントが違う」とは教えてくれないので無駄にハマったりする(1敗)
- うっかり違うアカウントで
解決方法
- firebaseコマンドは環境変数
XDG_CONFIG_HOME
で指定されたプロファイルを見に行くのでプロジェクト毎にこれを指定してあげる -
direnv
を使ってディレクトリ毎に環境変数を設定する
バージョンとか
Mac OSX Catalina 10.15.5
firebase-tools v8.7.0
実践
$ brew install direnv
...
# direnvのインストールマニュアル見てね
$ cd your-nice-project
# これでこのディレクトリではfirebaseのプロファイルは.config以下になる
$ echo export XDG_CONFIG_HOME=.config >> .envrc
# わすれずに
$ direnv allow
# ブラウザが開くので正しいアカウントを選択
$ firebase login
# なんかできていればOK
$ ls .config
# まぁ.gitignoreに入れておいたほうがいいでしょう
$ echo .config >> .gitignore
# 基本的には.envrcも.gitignoreに入れておいたほうが安心
$ echo .envrc >> .gitignore
# ご安全にデプロイ!
$ firebase deploy