firebaseerror: firebase: error (auth/invalid-api-key).というエラー

# はじめに
ローカルではテストが通るのになぜかCIでエラーが出たので解決策を載せます。

# 問題
ローカルではテストが通るがCIのテストステップで以下のエラーが出る。
```
firebaseerror: firebase: error (auth/invalid-api-key).
```
以下エラー時のymlファイルです。
```yml
name: Deploy to Firebase

on:
  push:
    branches:
      - main

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2

      - name: Setup Node.js
        uses: actions/setup-node@v2
        with:
          node-version: "18"

      - name: Install dependencies
        run: npm install

      - name: Run build
        env:
          VITE_REACT_APP_FIREBASE_API_KEY: ${{ secrets.VITE_REACT_APP_FIREBASE_API_KEY }}
          VITE_REACT_APP_FIREBASE_AUTH_DOMAIN: ${{ secrets.VITE_REACT_APP_FIREBASE_AUTH_DOMAIN }}
          VITE_REACT_APP_FIREBASE_PROJECT_ID: ${{ secrets.VITE_REACT_APP_FIREBASE_PROJECT_ID }}
          VITE_REACT_APP_FIREBASE_STORAGE_BUCKET: ${{ secrets.VITE_REACT_APP_FIREBASE_STORAGE_BUCKET }}
          VITE_REACT_APP_FIREBASE_MESSAGING_SENDER_ID: ${{ secrets.VITE_REACT_APP_FIREBASE_MESSAGING_SENDER_ID }}
          VITE_REACT_APP_FIREBASE_APP_ID: ${{ secrets.VITE_REACT_APP_FIREBASE_APP_ID }}
          VITE_REACT_APP_FIREBASE_MEASUREMENT_ID: ${{ secrets.VITE_REACT_APP_FIREBASE_MEASUREMENT_ID }}
          VITE_SUPABASE_URL: ${{ secrets.VITE_SUPABASE_URL }}
          VITE_SUPABASE_ANON_KEY: ${{ secrets.VITE_SUPABASE_ANON_KEY }}
        run: npm run build

      - name: Run tests
        run: npm test


      - name: Install firebase-tools
        run: npm install --save-dev firebase-tools

      - name: Deploy to Firebase
        uses: w9jds/firebase-action@master
        with:
          args: deploy --only hosting
        env:
          FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}
```

# 原因と解決策
環境変数を渡している箇所が問題でした。firebase authを使った認証周りのテストを書いてるファイルでエラーが出たのでおそらくテストのステップにfirebase authで必要な環境変数が読み込まれていなかったことが原因かと思います。以下のように環境変数をstepsの前にまとめて指定してあげることで無事PASSできました。

```yml
name: Deploy to Firebase

on:
  push:
    branches:
      - main

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    env:
      VITE_REACT_APP_FIREBASE_API_KEY: ${{ secrets.VITE_REACT_APP_FIREBASE_API_KEY }}
      VITE_REACT_APP_FIREBASE_AUTH_DOMAIN: ${{ secrets.VITE_REACT_APP_FIREBASE_AUTH_DOMAIN }}
      VITE_REACT_APP_FIREBASE_PROJECT_ID: ${{ secrets.VITE_REACT_APP_FIREBASE_PROJECT_ID }}
      VITE_REACT_APP_FIREBASE_STORAGE_BUCKET: ${{ secrets.VITE_REACT_APP_FIREBASE_STORAGE_BUCKET }}
      VITE_REACT_APP_FIREBASE_MESSAGING_SENDER_ID: ${{ secrets.VITE_REACT_APP_FIREBASE_MESSAGING_SENDER_ID }}
      VITE_REACT_APP_FIREBASE_APP_ID: ${{ secrets.VITE_REACT_APP_FIREBASE_APP_ID }}
      VITE_REACT_APP_FIREBASE_MEASUREMENT_ID: ${{ secrets.VITE_REACT_APP_FIREBASE_MEASUREMENT_ID }}
      VITE_SUPABASE_URL: ${{ secrets.VITE_SUPABASE_URL }}
      VITE_SUPABASE_ANON_KEY: ${{ secrets.VITE_SUPABASE_ANON_KEY }}
      FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}

    steps:
      - name: Checkout code
        uses: actions/checkout@v2

      - name: Setup Node.js
        uses: actions/setup-node@v2
        with:
          node-version: "18"

      - name: Install dependencies
        run: npm install

      - name: Run build
        run: npm run build

      - name: Run tests
        run: npm test


      - name: Install firebase-tools
        run: npm install --save-dev firebase-tools

      - name: Deploy to Firebase
        uses: w9jds/firebase-action@master
        with:
          args: deploy --only hosting
```

# おわりに
同じエラー文で検索してもそれぞれ原因が違ったりするので解決に少し時間がかかりました。