Banda-Media/lunchMemo

View on GitHub
app/services/firebase/admin.ts

Summary

Maintainability
A
0 mins
Test Coverage
import admin from 'firebase-admin';

const getFirebaseAdmin = (): admin.auth.Auth => {
  if (!admin.apps.length) {
    admin.initializeApp({
      credential: admin.credential.cert({
        projectId: process.env.NEXT_PUBLIC_LM_FIREBASE_PROJECT_ID,
        privateKey: process.env.NEXT_PUBLIC_LM_FIREBASE_PRIVATE_KEY?.replace(/\\n/g, '\n'),
        clientEmail: process.env.NEXT_PUBLIC_LM_FIREBASE_CLIENT_EMAIL
      }),
      databaseURL: process.env.NEXT_PUBLIC_LM_FIREBASE_DATABASE_URL
    });
  }
  try {
    return admin.auth();
  } catch (error) {
    throw new Error(`Could not initialize Firebase Admin, ${JSON.stringify(error)}`);
  }
};

export default getFirebaseAdmin;