ローカルのブラウザにアクセスできないリモート環境でFirebase CLIにログインする

はじめに
Firebase CLIでGoogleアカウントにログインする際、通常だとブラウザが自動で開いてそこで認証します。ただ、sshなどでリモートのサーバにログインしている場合はブラウザを開けないためこの方法は使用できません。この記事ではリモート環境でもFirebase CLIで認証するための手順をメモします。
前提と環境
-
Firebase CLIが使える状態であること
-
リモート環境での作業を前提としています。
リモート環境でFirebase CLIを認証する
リモート環境にて、firebase login --no-localhost
を実行します。この--no-localhost
フラグによってローカルでのブラウザを使用しない(すなわちリモート環境でブラウザを使用しない)認証が可能です。
実行すると以下のように表示され、認証コードの入力待ち状態になります。以降でこの認証コードを取得します。
上記の指示は、自分の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押すと以下のように表示され成功します。
これでリモート環境でFirebase CLIにログインできました。 念の為以下で確認できます。
なお、--no-localhost
はFirebase CLIにログインするアカウントを追加する時に使用するlogin:add
コマンドでも使用できます。
以下で切り替え可能です。
まとめ
--no-localhost
フラグについてはFirebaseの公式ドキュメントにも記載されていますが、たまに忘れてしまうためメモしました。
関連記事
関連記事はまだありません。
開発アプリ
