Spaces:
Running
Running
| const admin = require('firebase-admin'); | |
| function initFirebase() { | |
| try { | |
| if (!process.env.FIREBASE_SERVICE_ACCOUNT) { | |
| console.error("FCM Error: FIREBASE_SERVICE_ACCOUNT secret topilmadi!"); | |
| return false; | |
| } | |
| const serviceAccount = JSON.parse(process.env.FIREBASE_SERVICE_ACCOUNT); | |
| admin.initializeApp({ | |
| credential: admin.credential.cert(serviceAccount) | |
| }); | |
| console.log("Firebase Admin SDK muvaffaqiyatli ulandi!"); | |
| return true; | |
| } catch (e) { | |
| console.error("Firebase ulanish xatosi:", e.message); | |
| return false; | |
| } | |
| } | |
| async function sendPushToAll(title, message, imageUrl = null) { | |
| if (!admin.apps.length) { | |
| console.error("FCM ulanmagan!"); | |
| return { success: false, error: "FCM ulanmagan" }; | |
| } | |
| const payload = { | |
| notification: { | |
| title: title, | |
| body: message, | |
| image: imageUrl || undefined | |
| }, | |
| topic: "promo" | |
| }; | |
| try { | |
| const response = await admin.messaging().send(payload); | |
| return { success: true, response }; | |
| } catch (error) { | |
| console.error("Push yuborishda xatolik:", error); | |
| return { success: false, error: error.message }; | |
| } | |
| } | |
| module.exports = { | |
| initFirebase, | |
| sendPushToAll | |
| }; | |