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:
parent
defd95c218
commit
5c885eb3fa
@ -8,6 +8,7 @@ export const useNotificationToken = () => {
|
||||
if (!isNotificationSupport()) return;
|
||||
getFirebaseToken()
|
||||
.then(token => {
|
||||
if (!token) return;
|
||||
setToken(token);
|
||||
})
|
||||
.catch(() => {});
|
||||
|
||||
@ -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,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user