🐟

Firebaseにデプロイするときに認証トークンを使うのはやめよう(GitHub Actions)

2022/10/25に公開

こんにちは。地図パズル製作所の都島です。先週は Firebase Summit があったみたいですね。Firestore での Count の追加には、びっくりしました!これで、だいぶ実装しやすくなります。ということで今回も Firebase の話になります。

地図パズル製作所では GitHub Actions で Firebase にデプロイしているのですが、最近 Action の実行結果を眺めていたら、こんなことが表示されていました。

⚠  Authenticating with `--token` is deprecated and will be removed in a future major version of `firebase-tools`. Instead, use a service account key with `GOOGLE_APPLICATION_CREDENTIALS`: https://cloud.google.com/docs/authentication/getting-started

認証トークンを使ってデプロイするのは非推奨になりました、と書かれていますね。今まではこんな感じで、デプロイアクションでは認証トークンを使っていました。

name: Deploy

on:
  workflow_dispatch:

jobs:
  deploy:
    
    runs-on: ubuntu-latest
    env:
      working-directory: ./app

    steps: 
      # リポジトリのチェックアウト
      - name: Checkout
        uses: actions/checkout@v3

      # Node.js 16 の初期設定
      - name: Set Node.js 16.x
        uses: actions/setup-node@v3
        with:
          node-version: '16'
      
      # npm install
      - name: npm install
        run: npm install
        working-directory: ${{env.working-directory}}
      
      # Firebase ツールをインストール
      - name: Install Firebase Tools
        run: npm install firebase-tools -g

      # Build して、Firebase へデプロイ
      - name: Build and Deploy to Firebase
        run: npm run build && firebase use production --token ${{ secrets.FIREBASE_TOKEN }} && firebase deploy --token ${{ secrets.FIREBASE_TOKEN }}
        working-directory: ${{env.working-directory}}

これを、こんな感じに変えたら、ワーニングは出なくなりました。

name: Deploy

on:
  workflow_dispatch:

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps: 
      # リポジトリのチェックアウト
      - name: Checkout
        uses: actions/checkout@v3

      # Node.js 16 の初期設定
      - name: Set Node.js 16.x
        uses: actions/setup-node@v3
        with:
          node-version: '16'
      
      # npm install と npm run build
      - name: npm install and build
        run: npm install && npm run build
        working-directory: ./app
      
      # Firebase へデプロイ
      - name: Deploy to Firebase
        uses: w9jds/firebase-action@v11.9.0
        with:
          args: deploy
        env:
          GCP_SA_KEY: ${{ secrets.GCP_SA_KEY }}
          PROJECT_PATH: ./app
          PROJECT_ID: ${{ secrets.PROJECT_ID }}

GitHub の Secrets に GCP_SA_KEYPROJECT_ID を保存しておいてくださいね! GCP_SA_KEY は、GCP Console でデプロイ用サービスアカウントを作って、キーを発行して、それを登録するんだったと思います。もしかしたら、Base64 に変換してから登録したかもしれません。ちゃんと覚えていなくてすみません!

ということで、今日は Firebase でデプロイするときに、認証トークンを使うのはやめよう、という話でした。

最後にいつも通り地図パズル製作所の宣伝です!地図パズル製作所はいろいろな地図パズルを作って公開しています。最近は航空写真の地図パズルもできました!ぜひ挑戦してみてください!!

https://chizu-puzzle.com

Discussion