ローカルのブラウザにアクセスできないリモート環境でFirebase CLIにログインする
はじめに
Firebase CLIでGoogleアカウントにログインする際、通常だとブラウザが自動で開いてそこで認証します。ただ、sshなどでリモートのサーバにログインしている場合はブラウザを開けないためこの方法は使用できません。この記事ではリモート環境でもFirebase CLIで認証するための手順をメモします。
前提と環境
-
Firebase CLIが使える状態であること
-
リモート環境での作業を前提としています。
リモート環境でFirebase CLIを認証する
リモート環境にて、firebase login --no-localhost
を実行します。この--no-localhost
フラグによってローカルでのブラウザを使用しない(すなわちリモート環境でブラウザを使用しない)認証が可能です。
実行すると以下のように表示され、認証コードの入力待ち状態になります。以降でこの認証コードを取得します。
$ firebase login --no-localhost
To sign in to the Firebase CLI:
1. Take note of your session ID:
44A36
2. Visit the URL below on any device and follow the instructions to get your code:
https://auth.firebase.tools/login?code_challenge=sk39dkklpw0_lwk20kla_lasl&session=i399sjsssj39jpoiadjlda0saksasjas7&attest=s9ujnljasdi724975hoqf801308fu1380hf
3. Paste or enter the authorization code below once you have it:
? Enter authorization code:
上記の指示は、自分のPCなどリモートではない環境でブラウザを開き、そこで上記ステップ2に表示されているURLhttps://auth.firebase.tools/login?...
にアクセスします。そしてそこでGoogleアカウントの認証画面が開くので、リモート環境のFirebase CLIでログインしたいGoogleアカウントでログインします。すると以下のように表示されます。
本当にfirebase login --no-localhost
を実行しているかの確認になります。ここで
Yes, I just ran this command
をクリックします。
以下のようにセッションIDが表示されるので、この値がターミナルのステップ1で表示されている値44A36
と同じであることを確認し、Yes, this is my session ID
をクリックします。
上記の認証コードを貼り付けます。
? Enter authorization code: sij3ls08u235o8n98345nu890dpq4385y6qp8490230823082038j08x3283
そしてEnter押すと以下のように表示され成功します。
✔ Success! Added account your@gmail.com
これでリモート環境でFirebase CLIにログインできました。 念の為以下で確認できます。
$ firebase login:list
Logged in as your@gmail.com
なお、--no-localhost
はFirebase CLIにログインするアカウントを追加する時に使用するlogin:add
コマンドでも使用できます。
$ firebase login:add --no-localhost
以下で切り替え可能です。
$ firebase login:use your@gmail.com
まとめ
--no-localhost
フラグについてはFirebaseの公式ドキュメントにも記載されていますが、たまに忘れてしまうためメモしました。
関連記事
関連記事はまだありません。