firebase loginで「localhost で接続が拒否されました。」でアクセスできない場合の対処方法

Firebase

firebase loginで表示されるエラー

firebase でloginする際やtoken文字列を取得する際に以下のコマンドを実行します。

firebase login

firebase login:ci

URLが表示され、

Visit this URL on this device to log in:
https://accounts.google.com/o/oauth2/auth?client_id=xxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com&scope=email%20openid%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloudplatformprojects.readonly%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Ffirebase%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform&response_type=code&state=xxxxxxx&redirect_uri=http%3A%2F%2Flocalhost%3A9005

クリックすると通常はブラウザでGoogleアカウントを選択後に認証コード(authorization code)が表示されますが、localhostにアクセスできない場合に以下のようにエラーメッセージが表示される場合があります。

エラー原因

原因はエラーメッセージの通りですが、localhostにアクセスできない環境の場合です。

例えば、Dockerで開発環境を構築し、Dockerコンテナ内でfirebase loginコマンドを実行した場合に発生します。

対応方法「–no-localhost」オプションを指定する

firebase loginコマンドに「–no-localhost」オプションを指定して実行しましょう。

firebase login --no-localhost

firebase login:ci --no-localhost

この後表示されるURLからGoogleアカウントの認証を行うと、認証コード(authorization code)が表示されるようになります。

その認証コード(authorization code)をコンソール上で入力するとtoken文字列が表示されます。

Paste authorization code here:

xxxxxxxtokenxxxxxxx

Firebase

Posted by snow