はじめに
GithubActionsを使用してfirebaseでデプロイを行うプロジェクトを選択する処理を実装していました。
その中で「failed to authenticate, have you run firebase login?」というエラーが出て解決までに時間がかかったので確認することを書いていきます。
デプロイ時環境
- GCP
⇒サービスアカウントキー発行 - firebase
⇒プロジェクト作成済み
確認すること
- デプロイするときに使用するサービスアカウントキーの登録情報があっているか
⇒Githubのシークレットに登録したNameの名前とymlファイルに記述した環境変数名が一致しているかやシークレットにそもそも登録しているのかを確認する。
今回のエラーが起きたときの状態
- name: Decode Firebase service account key
run: |
echo "${{ secrets.FIREBASE_KEY}}" | base64 -d > ./firebase-key.json
エラー解決に向けて行ったこと
Githubのシークレットにymlファイルで設定した環境変数名とデプロイ時に使用するサービスアカウントキーの値を再度登録を行いました。
- 今回の場合は下記のように登録しました。
Name:FIREBASE_KEY
Value:サービスアカウントキー(デプロイをするときに必要な権限を持ったアカウント)
⇒jsonファイルに記述されているものをデコードし、クリップボードに張り付けるコマンドを実行しGitHubのシークレットのValueに貼り付けます。
※貼り付けを行う際にValueの入力欄の最後は空白の行が入っていることを確認してください。 - ubuntu クリップボードコピーコマンド
$ base64 firebase-cicd.json | xsel --clipboard --input
※firebase-cicd.jsonはサービスアカウントキーの情報が記載されているjsonファイルです。
※ubutuではxselコマンドがインストールされていない場合はインストールする必要があります。
$ sudo apt-get install xsel