はじめに
FirebaseでCDが通らないことで悩んだのでエラー内容・原因についてまとめます
エラー内容
エラーメッセージ
Error: Failed to get Firebase project study-app-b7499
Firebaseがプロジェクト名study-app-b7499が見つからないってエラーです。
解決方法
問題のコード
- name: Decode Firebase service account key
run: |
echo "${{ secrets.FIREBASE_KEY }}" | base64 -d > ./firebase-key.json
echo "GOOGLE_APPLICATION_CREDENTIALS=${{ github.workspace }}/firebase-key.json" >> $GITHUB_ENV
- name: change space
run: ./node_modules/.bin/firebase use ${{ secrets.FIREBASE_PROJECT_ID }}
- name: Deploy to Firebase Hosting
run: |
./node_modules/.bin/firebase deploy
修正コード
- name: Decode Firebase service account key
run: |
echo "${{ secrets.FIREBASE_KEY }}" | base64 -d > ./firebase-key.json
echo "GOOGLE_APPLICATION_CREDENTIALS=${{ github.workspace }}/firebase-key.json" >> $GITHUB_ENV
# .firebaserc ファイルを作成して Firebase プロジェクトを設定
- name: Set Firebase project
run: |
echo "{\"projects\":{\"default\":\"${{ secrets.FIREBASE_PROJECT_ID }}\"}}" > .firebaserc
- name: Deploy to Firebase Hosting
run: |
./node_modules/.bin/firebase deploy
env:
問題のコード
./node_modules/.bin/firebase use ${{ secrets.FIREBASE_PROJECT_ID }}
firebase use <プロジェクトID>は、Firebase CLIで使用するプロジェクトを切り替えるコマンド
もし、.firebaseファイルが下記のようになっていればハードコーディングされた値のプロジェクトを探しに行く
.firebase
{
"projects": {
"default": "study-app-b7499"
}
}
自分のプロジェクトがkeita-202の場合でもstudy-app-b7499を探すことになりエラーが出る
- name: Set Firebase project
run: |
echo "{\"projects\":{\"default\":\"${{ secrets.FIREBASE_PROJECT_ID }}\"}}" >
上記のように修正することで.firebasercを動的に変えることができるので、意図したプロジェクトをデプロイすることができる
おわりに
今までJS,Go,PHPでコードは書いていたけど、.ymlのような設定ファイルはなかなか書くことがなかったので
今回沼った件で知見が増えました。
まだまだ、FirebaseのCDには悩まされたことがたくさんあるので記事にしていきます