Overview
自分のポートフォリオサイトをメンテナンスしたときに Firebase 周りの設定も最新の状況に合わせて色々更新したところ、Deploy 時にエラーが発生するようになっていたので、その調査と修正の備忘録です。
主に必要だった内容は以下
- Firebase を Github Actions から Deploy するときに FIREBASE_TOKEN が使えなくなっていた。
- Deploy 時に RealTime Database が有効化されていないのでプロジェクトが見つからない。
対応
- FIREBASE_TOKEN のかわりに Google のサービスアカウントキーを使用する。
- サービス アカウントを作成する の手順に従って IAM からサービスアカウントを発行し、プロジェクトのオーナー権限を付与。
- サービスアカウントの作成が完了したら鍵をDL。
- JSON 形式で DL したサービスアカウントのクレデンシャルを base64 にエンコードして CI の設定に追加。
- Deploy 時に使用する環境変数等については w9jds/firebase-action の README 参照。
- realtime database が有効化されていなかったので自分の
$projectID
が見つからない、というエラーが発生していたので、コンソールから RealTime Database を有効化する。- Deploy fails with v8.16+: Failed to get instance details for instance: <project-id> の issue に同じことが書いてある。
See Also
- 基本的にはこの zenn のエントリの通りに進めた。
- これは参考にしたけど CI 上でわざわざ JSON にして取り扱う必要はなかった。
- Firebase Hosting に限れば GitHub Actions とのインテグレーションが公式のドキュメントに記載されているが、このインテグレーションは Firebase の他のサービスは対応しておらず、この方式を取るとそれまでは CI 上でコマンド1つで Firebase のすべてのサービスにデプロイで来ていた状態が Hosting のみでプロイできる状態に変わってしまい、他のサービスのデプロイは別途考える必要ができてしまうので採用を見送りました。