import * as admin from "firebase-admin"
import { Logger } from "@nestjs/common"

const logger = new Logger("FirebaseConfig")

export const initializeFirebase = () => {
  if (!admin.apps.length) {
    try {
      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"),
        }),
      })
      logger.log("Firebase Admin SDK initialized successfully.")
    } catch (error) {
      logger.error("Error initializing Firebase Admin SDK:", error)
      // Depending on the application's needs, you might want to re-throw or handle this more gracefully
      throw error
    }
  } else {
    logger.log("Firebase Admin SDK already initialized.")
  }
}
