| |
|
| | 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'; |
| |
|
| | |
| | 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 }; |
| |
|