API notif dan penambahan package firebase-admin

Add:
- src/app/api/mobile/notifications/
- src/lib/firebase-admin.ts

### No Issue
This commit is contained in:
2025-12-15 17:47:59 +08:00
parent f06482a159
commit c0a9832c66
5 changed files with 283 additions and 8 deletions

24
src/lib/firebase-admin.ts Normal file
View File

@@ -0,0 +1,24 @@
// lib/firebase-admin.ts
import { cert, getApp, getApps, initializeApp } from 'firebase-admin/app';
import { getMessaging } from 'firebase-admin/messaging';
// Ambil dari environment
const serviceAccount = {
projectId: process.env.FIREBASE_ADMIN_PROJECT_ID,
clientEmail: process.env.FIREBASE_ADMIN_CLIENT_EMAIL,
privateKey: process.env.FIREBASE_ADMIN_PRIVATE_KEY?.replace(/\\n/g, '\n'),
};
if (!serviceAccount.projectId || !serviceAccount.clientEmail || !serviceAccount.privateKey) {
throw new Error('Firebase Admin credentials are missing in environment variables');
}
// Inisialisasi hanya sekali
const app = !getApps().length
? initializeApp({
credential: cert(serviceAccount),
projectId: serviceAccount.projectId,
})
: getApp();
export const adminMessaging = getMessaging(app);