🔥

Firebase Admin 初期化時に使用する情報を環境変数に設定する

2024/07/28に公開

はじめに

今回は、JSON形式のシークレットキーの情報を環境変数に設定し、Firebase Adminを初期化する方法を解説します。

設定方法

シークレットキーのダウンロード

まずはシークレットキーをダウンロードします。

ダウンロードしたシークレットキーは以下の形式になっています。

{
  "type": "service_account",
  "project_id": "example ...",
  "private_key_id": "404bda78 ...",
  "private_key": "-----BEGIN PRIVATE KEY----- ...",
  "client_email": "firebase-adminsdk ...",
  "client_id": "1048 ...",
  "auth_uri": "https://accounts.google.com ...",
  "token_uri": "https://oauth2.googl ...",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/ ...",
  "client_x509_cert_url": "https://www.googleapis.com/robot/ ...",
  "universe_domain": "googleapis.com"
}

環境変数にシークレットキー情報を設定

設定するのは以下の三つの情報です。

  • project_id
  • client_email
  • private_key

環境変数に必要な情報を追加します。

FIREBASE_PROJECT_ID="project_idの値"
FIREBASE_CLIENT_EMAIL="client_emailの値"
FIREBASE_PRIVATE_KEY="private_keyの値"

Firebase Adminを初期化

環境変数に設定した値を呼び出してFirebase Adminを初期化します。

import admin from "firebase-admin";

admin.initializeApp({
  credential: admin.credential.cert({
    projectId: process.env.FIREBASE_PROJECT_ID,
    clientEmail: process.env.FIREBASE_CLIENT_EMAIL,
    privateKey: process.env.FIREBASE_PRIVATE_KEY?.replace(/\\n/g, "\n"),
  }),
});

replace(/\\n/g, '\n')は、文字列内のエスケープされた改行コード\\nを実際の改行文字\nに変換します。

さいごに

今回は、JSON形式のシークレットキーの情報を環境変数に設定し、Firebase Adminを初期化する方法を解説しました。

参考

https://blog.ojisan.io/firebase-admin-init/

https://stackoverflow.com/questions/64073209/how-do-i-add-google-application-credentials-secret-to-vercel-deployment

Discussion