Yuyuqt
add: authorized pages, firebase
d8a7fc4
Raw
History Blame Contribute Delete
2.05 kB
import { initializeApp } from "https://www.gstatic.com/firebasejs/11.6.1/firebase-app.js";
import { getMessaging, getToken, onMessage } from "https://www.gstatic.com/firebasejs/11.6.1/firebase-messaging.js";
const firebaseConfig = {
apiKey: "AIzaSyBodr7GJuCFdJfBYV8XBY77P9A4Wrxz_CA",
authDomain: "library-ths.firebaseapp.com",
projectId: "library-ths",
storageBucket: "library-ths.firebasestorage.app",
messagingSenderId: "222408896403",
appId: "1:222408896403:web:8533e26175c043e40a0266",
measurementId: "G-LVVGH9T1K3"
};
const app = initializeApp(firebaseConfig);
const messaging = getMessaging(app);
window.getFcmToken = async () => {
try {
const permission = await Notification.requestPermission();
if (permission === 'granted') {
// IMPORTANT: Replace 'YOUR_VAPID_KEY' with your actual key from
// Firebase Console -> Project Settings -> Cloud Messaging -> Web configuration -> Web Push certificates
console.log('Registering service worker...');
const registration = await navigator.serviceWorker.register('/firebase-messaging-sw.js');
console.log('Service worker registered successfully:', registration.scope);
const token = await getToken(messaging, {
vapidKey: 'BNgDM2Eq7TPwap0FhF-xv0CK6cS5EfshHOiC8z4916XnewFWYKdAfhwHctsgte5q8jQicQO8PEDVeymlXToasVQ',
serviceWorkerRegistration: registration
});
return token;
} else {
throw new Error('Permission not granted for notifications. Current state: ' + permission);
}
} catch (error) {
console.error('Error getting FCM token:', error);
throw new Error(error.message || error.toString());
}
};
onMessage(messaging, (payload) => {
console.log('Foreground Message received: ', payload);
const title = payload.notification.title;
const body = payload.notification.body;
if (window.showToast) {
window.showToast(title + ": " + body, 'success');
}
});