fix(firebase): add null checks for service worker registration and token

- Add guard clause in useNotificationToken to skip setting state if token is empty
- Add check for navigator.serviceWorker support in initServiceWorker
- Handle service worker registration failure in getFirebaseToken by returning empty string
- Prevents errors and invalid states when Service Worker is unsupported or fails to initialize
This commit is contained in:
kyuuseiryuu 2026-03-27 21:30:42 +09:00
parent defd95c218
commit 5c885eb3fa
2 changed files with 3 additions and 1 deletions

View File

@ -8,6 +8,7 @@ export const useNotificationToken = () => {
if (!isNotificationSupport()) return;
getFirebaseToken()
.then(token => {
if (!token) return;
setToken(token);
})
.catch(() => {});

View File

@ -20,9 +20,9 @@ export const getFirebaseApp = () => {
}
return firebase.app;
};
// getAnalytics(app);
export const initServiceWorker = async () => {
if (!navigator.serviceWorker) return;
if (!firebase.registeration) {
firebase.registeration = await navigator.serviceWorker.register('/sw.js', {
scope: '/',
@ -41,6 +41,7 @@ export const getFirebaseMessaging = () => {
export async function getFirebaseToken() {
const registeration = await initServiceWorker();
if (!registeration) return '';
await registeration.update();
const token = await getToken(getFirebaseMessaging(), {
vapidKey: VAPI_PUBLIC_KEY,