30 lines
683 B
TypeScript
30 lines
683 B
TypeScript
import * as admin from 'firebase-admin';
|
|
import { cert } from 'firebase-admin/app';
|
|
|
|
// Initialize Firebase Admin SDK
|
|
export function initFirebaseAdmin() {
|
|
admin.initializeApp({
|
|
credential: cert({
|
|
projectId: process.env.NEXT_PUBLIC_FIREBASE_PROJECT_ID,
|
|
clientEmail: process.env.NEXT_PUBLIC_FIREBASE_CLIENT_EMAIL,
|
|
privateKey: process.env.NEXT_PUBLIC_FIREBASE_SECRET_KEY!.replace(
|
|
/\\n/g,
|
|
'\n'
|
|
),
|
|
}),
|
|
});
|
|
|
|
return admin;
|
|
}
|
|
|
|
// Get Firebase admin instance (initialize if needed)
|
|
export function getFirebaseAdmin() {
|
|
if (admin.apps.length === 0) {
|
|
initFirebaseAdmin();
|
|
}
|
|
|
|
return admin;
|
|
}
|
|
|
|
export default getFirebaseAdmin();
|