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

公開日:2022/08/17 更新日:2022/08/17
ローカルのブラウザにアクセスできないリモート環境でFirebase CLIにログインするのサムネイル
Photo by Markus Spiske on Unsplash

はじめに

Firebase CLIでGoogleアカウントにログインする際、通常だとブラウザが自動で開いてそこで認証します。ただ、sshなどでリモートのサーバにログインしている場合はブラウザを開けないためこの方法は使用できません。この記事ではリモート環境でもFirebase CLIで認証するための手順をメモします。

前提と環境

  • Firebase CLIが使える状態であること

  • リモート環境での作業を前提としています。

firebase.google.com

Firebase CLIは、Firebase プロジェクトの管理、表示、デプロイを行うさまざまなツールを提供します。

リモート環境で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アカウントでログインします。すると以下のように表示されます。 confirm-command.png

本当にfirebase login --no-localhostを実行しているかの確認になります。ここで Yes, I just ran this command をクリックします。 以下のようにセッションIDが表示されるので、この値がターミナルのステップ1で表示されている値44A36と同じであることを確認し、Yes, this is my session IDをクリックします。 confirm-session-id.png

以下のように認証コード表示されます。 copy-authorization-code.png

上記の認証コードを貼り付けます。

? 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の公式ドキュメントにも記載されていますが、たまに忘れてしまうためメモしました。

関連記事

関連記事はまだありません。

開発アプリ

nanolog.app

毎日の小さな出来事をなんでも記録して、ログとして残すためのライフログアプリです。