looood / workspace /src /lib /firebase-admin.ts
looda3131's picture
Clean push without any binary history
cc276cc
import { initializeApp, getApps, App, cert, ServiceAccount } from 'firebase-admin/app';
import { getDatabase } from 'firebase-admin/database';
import { getFirestore } from 'firebase-admin/firestore';
import { getMessaging } from 'firebase-admin/messaging';
import serviceAccount from '@/../service-account.json';
// Correctly type the service account object for the cert function
const serviceAccountInfo: ServiceAccount = {
projectId: serviceAccount.project_id,
privateKey: serviceAccount.private_key,
clientEmail: serviceAccount.client_email,
};
const firebaseAdminConfig = {
credential: cert(serviceAccountInfo),
databaseURL: process.env.NEXT_PUBLIC_FIREBASE_DATABASE_URL,
};
let adminApp: App;
if (!getApps().length) {
adminApp = initializeApp(firebaseAdminConfig);
} else {
adminApp = getApps()[0];
}
const adminDb = getDatabase(adminApp);
const adminFirestore = getFirestore(adminApp);
const adminMessaging = getMessaging(adminApp);
export { adminApp, adminDb, adminFirestore, adminMessaging };