contact

blog-MainImage

Kabe-Log

2021-06-28

2021-11-11

firebase authを使用した環境をVercelにデプロイする方法

Next.js,

frontend,

Vercel

firebaseで新規プロジェクトの立ち上げ

Firebaseでプロジェクトを立ち上げます。立ち上げた際に環境変数をコピーしておきましょう。

Firebaseをインストール

yarn add firebase

環境変数を定義

.env.localに環境変数を定義します。このファイルはGitHubにpushしないよう注意が必要です。Next.jsではデフォルトで.gitignoreに登録されています。 環境変数名に”NEXT_PUBLIC"を付けるとクライアント側でも環境変数が使えるようになるそうです(この辺りの仕組みはまだ曖昧…)。

NEXT_PUBLIC_FIREBASE_API_KEY=******NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=******NEXT_PUBLIC_FIREBASE_PROJECT_ID=******NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=******NEXT_PUBLIC_FIREBASE_MESSAGE_SENDER_ID=******:NEXT_PUBLIC_FIREBASE_APP_ID=******NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID=******

next.config.jsを作成

next.config.jsを作成し、環境変数を登録します。

module.exports = { env: { NEXT_PUBLIC_FIREBASE_API_KEY: process.env.NEXT_PUBLIC_FIREBASE_API_KEY, NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN: process.env.NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN, NEXT_PUBLIC_FIREBASE_PROJECT_ID: process.env.NEXT_PUBLIC_FIREBASE_PROJECT_ID, NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET: process.env.NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET, NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID: process.env.NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID, NEXT_PUBLIC_FIREBASE_APP_ID: process.env.NEXT_PUBLIC_FIREBASE_APP_ID, NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID: process.env.NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID, } }

firebaseを初期化

.src/lib/firebase.tsを作成し、以下のように記述。initializeを一度だけ実行するように設定します。

import firebase from "firebase/app"; import "firebase/auth"; export const config = { apiKey: process.env.NEXT_PUBLIC_FIREBASE_API_KEY, authDomain: process.env.NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN, projectId: process.env.NEXT_PUBLIC_FIREBASE_PROJECT_ID, storageBucket: process.env.NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET, messagingSenderId: process.env.NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID, appId: process.env.NEXT_PUBLIC_FIREBASE_APP_ID, measurementId: process.env.NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID }; !firebase.apps.length ? firebase.initializeApp(config) : firebase.app(); export const auth = firebase.auth(); export const Firebase = firebase;

これで、指定のファイルでauthをインポートすることでそのファイル内で、authが使えるようになります。

Vercelに環境変数を追加していく

Vercelのデプロイするアプリから Settings → Environment Variablesを選択 .env.localで設定した環境変数を一つずつ加えていきます。

firebase1.webp

下記のようにfirebaseの環境変数を追加していきます。

firebase3.webp

firebaseのコンソールにドメインを追加

firebase authでドメイン追加からドメインを追加

Firebaseのコンソールから、Authentication → Sign-in method → 承認済みドメインへ移動し、「ドメイン追加」からデプロイ先のドメインを登録します。

firebase2.webp  以上で、デプロイ先でも正常にauth機能が動くようになると思います。

search

recommended

AWS資格 SAPとSOAを取得したので、対策や受験時の感想について
2022-05-23AWS資格 SAPとSOAを取得したので、対策や受験時の感想について
実務経験一年の転職活動(エンジニア生活:2月)
2022-03-15実務経験一年の転職活動(エンジニア生活:2月)
2022年は、フルスタックエンジニアに(エンジニア生活:1月)
2022-02-072022年は、フルスタックエンジニアに(エンジニア生活:1月)
「AWSエンジニア入門講座――学習ロードマップで体系的に学ぶ」を読んだ感想
2022-01-29「AWSエンジニア入門講座――学習ロードマップで体系的に学ぶ」を読んだ感想
エンジニア転職した一年の振り返り
2022-01-04エンジニア転職した一年の振り返り
Remixと朝活(エンジニア生活:11月)
2021-12-02Remixと朝活(エンジニア生活:11月)

contact