はじめに
DX開発事業部の北村です。
参画した案件でFirebaseを使用する機会があったので、Firebase × Next.jsの初期セットアップ方法をまとめたいと思います!
この記事1本で初期セットアップが完結する内容となっています!
Firebaseとは?
初めに、Firebaseの簡単な紹介です。
Firebaseとは、Googleが提供するMBaaS(Mobile Backend as a Service)/BaaS(Backend as a Service)に位置付けられるサービスです。モバイル・Webアプリケーションのバックエンドの機能を、クラウドサービスとして提供します。Firebaseを活用することで、バックエンドの処理を簡単に実装できるため、バックエンド開発の時間、運用の手間の省略、コスト節約につながるサービスです。
今回は、Firebaseの数多くあるサービスの中でも以下のサービスの初期セットアップの方法を紹介していきます!
Firebase Hosting
静的なWebページやWebアプリを、簡単な操作でスピーディーにデプロイできるサービスで、グローバル向けのCDNとして配信できます。高速な通信速度と安全性の高いホスティングサービスです。
Firebase Authentication
セキュリティに優れた安全な認証機能を簡単に実装できるサービスです。
メールとパスワードに基づく認証、SNSでの認証(Google、Microsoft、Facebook、X(旧Twitter)、GitHubなど)、電話番号認証、カスタム認証システムとの統合、匿名認証など、他にも多数の認証方法を使用することができます。
Cloud Firestore
ドキュメント型NoSQLのクラウドデータベースサービスです。フルマネージドサービスのため、データベース管理が不要です。セキュリティルールによるアクセス制御で、安全にデータ管理を行うことができます。
Firebaseプロジェクトの作成
セットアップ開始です!
Firebase Consoleにて、「プロジェクトを作成」を押下します。

任意のプロジェクト名を入力し、必要に応じて親リソースを選択し「続行」ボタンを押下します。

必要に応じてGoogleアナリティクスを有効にし、「続行」ボタンを押下します。

「続行」ボタンを押下します。

下記の画面に遷移すれば、プロジェクト作成は完了です!

Firebaseプロジェクトにアプリを追加
上記で作成したFirebaseプロジェクトにアプリを追加していきます。
Next.jsとFirebaseを連携するために必要となります。
「Webアプリを追加」ボタンを押下します。

任意のアプリ名を入力し、「アプリを登録」ボタンを押下します。

下記の画面に遷移し、アプリの設定情報が表示されているか確認します。
この情報は、Next.jsとの連携の際に必要になるので、コピーして保存しておきます。
「コンソールに進む」ボタンを押下します。

下記の画面に遷移したら、Firebaseプロジェクトへのアプリの追加は完了です!

Firebaseプロジェクトに追加したアプリは、下記の画面でも確認ができます。
「プロジェクトの設定」を押下します。

アプリの設定情報が確認できます。

Firebase Authenticationの設定
認証機能で使用するFirebase Authenticationの設定を行います。
コンソールのホームに戻り、「Authentication」ボタンを押下します。

「始める」ボタンを押下します。

使用したい認証方法を選択します。(今回は、Microsoft認証を選択)

Microsoft側(Azure)で登録したアプリのアプリケーションID、アプリケーションシークレットを入力し、「有効にする」を選択後「保存」ボタンを押下します。

下記の画像のようになっていれば、Firebase Authenticationの設定は完了です!

Cloud Firestoreの設定
データベースとして使用するCloud Firestoreの設定を行います。
コンソールのホームに戻り、「Cloud Firestore」ボタンを押下します。

「データベースを作成」ボタンを押下します。

ロケーションを「asia-northeast1(Tokyo)」に設定し、「次へ」ボタンを押下します。

任意のモードを選択し、「作成」ボタンを押下します。(今回は、「本番環境モード」を選択)
「本番環境モード」と「テストモード」の違いは、セキュリティルール(データベースへのアクセス制御)の初期状態の違いになります。
「本番環境モード」は、初期状態で全アクセス禁止、「テストモード」は、初期状態で全アクセス許可(30日限定)で設定されています。
「テストモード」は、30日経過すると自動的に「本番環境モード」に移行します。

データベースの作成が完了すると、下記の画面に遷移します。

「ルール」タブを押下し、任意のセキュリティルールを設定します。(「本番環境モード」のみ)
全アクセスを許可する場合は、以下のセキュリティルールを設定します。
allow read, write: if true;

以上で、Cloud Firestoreの設定は完了です!
FirebaseとNext.jsを連携
任意のNext.jsプロジェクトにて下記のコマンドを実行し、Firebase Javascript SDKを導入します。
npm install firebase
任意のディレクトリに「.env」ファイルを作成し、「Firebaseプロジェクトにアプリを追加」の章で確認したアプリの設定情報を記載します。

.env
// 「sample」部分に設定値を入力 NEXT_PUBLIC_FIREBASE_API_KEY="sample" NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN="sample" NEXT_PUBLIC_FIREBASE_PROJECT_ID="sample" NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET="sample" NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID="sample" NEXT_PUBLIC_FIREBASE_APP_ID="sample"
任意のディレクトリに「firebase.ts」ファイルを作成し、アプリの設定情報を記載します。
その際、それぞれの設定値は、「.env」ファイルから読み込むようにします。
src/firebase/firebase.ts
// Import the functions you need from the SDKs you need
import { getApp, getApps, initializeApp } from "firebase/app";
import { getAuth } from "firebase/auth";
import { getFirestore } from "firebase/firestore";
// https://firebase.google.com/docs/web/setup#available-libraries
// 設定値は、「.env」ファイルから読み込み
const firebaseConfig = {
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,
};
// アプリを初期化
const app = initializeApp(firebaseConfig);
export const initializeFirebaseApp = () =>
!getApps().length ? initializeApp(firebaseConfig) : getApp();
// Firebase Authenticationを初期化
export const auth = getAuth(app);
// Cloud Firestoreを初期化
export const db = getFirestore(app);
任意のページでFirebaseと連携できているか確認します。
src/app/page.tsx
import { initializeFirebaseApp } from "@/firebase/firebase";
import { getApps } from "firebase/app";
// Firebaseを初期化
initializeFirebaseApp()
export default function Home() {
// Firebaseのアプリ情報をコンソールに出力
console.log(getApps());
return (
<div>Hellow World</div>
);
}
ターミナルにFirebaseのアプリ情報が出力されていたら連携完了です!
Firebase Hostingの設定・デプロイ
最後に、Firebase Hostingの設定を行い、アプリをデプロイします。
下記のコマンドを実行し、Firebase CLIをインストールします。
npm install -g firebase-tools
下記コマンドを実行し、Googleにログインします。
firebase login
下記のコマンドを実行し、Firebaseプロジェクトを初期化します。
firebase init
Hostingを選択します。

「Use an existing project」で既存プロジェクトを選択します。

その後の対話は、任意の選択肢を選択します。
下記が出力がされ、「firebase.json」ファイルが作成されていれば、Firebaseプロジェクトの初期化は完了です!
![]()
最後に、下記コマンドを実行し、デプロイします。
firebase deploy
Firebaseコンソールに戻り、「Hosting」ボタンを押下します。

「始める」ボタンを押下します。

「次へ」ボタンを押下していき、「コンソールに進む」ボタンを押下します。

下記の画像のように、デプロイが確認できたらFirebase Hostingの設定・デプロイは完了です!

以上で、Firebase × Next.jsの初期セットアップは全て完了です!
まとめ
今回は、Firebase × Next.jsの初期セットアップの手順を紹介しました。この記事が初期セットアップの参考になれば幸いです!
また、Firebaseには今回紹介できなかったサービスがまだまだ多くあります。この記事でFirebase活用の一歩を踏み出していただき、その他のサービスもぜひ活用してみてください!