From b62fed7bacc1adf389c1f1cd36b216fc882cb0db Mon Sep 17 00:00:00 2001 From: kyuuseiryuu Date: Fri, 27 Mar 2026 22:30:03 +0900 Subject: [PATCH] refactor(firebase): add try-catch for service worker registration Wrap the service worker registration logic in a try-catch block to prevent uncaught exceptions when Service Workers are not supported or fail to load. Log a debug message on failure and return null instead of propagating the error. This improves application robustness in environments without Service Worker support. --- src/utils/firebase-frontend.ts | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/utils/firebase-frontend.ts b/src/utils/firebase-frontend.ts index 017056f..6d6bf3d 100644 --- a/src/utils/firebase-frontend.ts +++ b/src/utils/firebase-frontend.ts @@ -22,14 +22,19 @@ export const getFirebaseApp = () => { }; export const initServiceWorker = async () => { - if (!navigator.serviceWorker) return; - if (!firebase.registeration) { - firebase.registeration = await navigator.serviceWorker.register('/sw.js', { - scope: '/', - }); + try { + if (!navigator.serviceWorker) return; + if (!firebase.registeration) { + firebase.registeration = await navigator.serviceWorker.register('/sw.js', { + scope: '/', + }); + } + console.debug('Serviceworker inited', firebase); + return firebase.registeration; + } catch(e) { + console.debug('不支持 ServiceWorker'); + return null; } - console.debug('Serviceworker inited', firebase); - return firebase.registeration; } export const getFirebaseMessaging = () => {