From 5c885eb3faee36207b4a3d28fd9a8ffcca6bf28c Mon Sep 17 00:00:00 2001 From: kyuuseiryuu Date: Fri, 27 Mar 2026 21:30:42 +0900 Subject: [PATCH] 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 --- src/hooks/useNotificationToken.ts | 1 + src/utils/firebase-frontend.ts | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/hooks/useNotificationToken.ts b/src/hooks/useNotificationToken.ts index 8b430a0..6227419 100644 --- a/src/hooks/useNotificationToken.ts +++ b/src/hooks/useNotificationToken.ts @@ -8,6 +8,7 @@ export const useNotificationToken = () => { if (!isNotificationSupport()) return; getFirebaseToken() .then(token => { + if (!token) return; setToken(token); }) .catch(() => {}); diff --git a/src/utils/firebase-frontend.ts b/src/utils/firebase-frontend.ts index d3ea527..017056f 100644 --- a/src/utils/firebase-frontend.ts +++ b/src/utils/firebase-frontend.ts @@ -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,