fix: service worker access

This commit is contained in:
zerosoul
2022-06-12 12:21:12 +08:00
parent 86ea895b13
commit 14b4678d9e
2 changed files with 44 additions and 36 deletions
@@ -4,27 +4,30 @@ import { getToken, getMessaging } from "firebase/messaging";
import { firebaseConfig } from "../../../app/config";
const useDeviceToken = (vapidKey) => {
const [token, setToken] = useState(null);
const messaging = getMessaging(initializeApp(firebaseConfig));
// https only
if (navigator.serviceWorker) {
const messaging = getMessaging(initializeApp(firebaseConfig));
getToken(messaging, {
vapidKey,
})
.then((currentToken) => {
if (currentToken) {
console.log("current token for client: ", currentToken);
setToken(currentToken);
// updateDeviceToken(currentToken)
// Perform any other neccessary action with the token
} else {
// Show permission request UI
console.log(
"No registration token available. Request permission to generate one."
);
}
getToken(messaging, {
vapidKey,
})
.catch((err) => {
console.log("An error occurred while retrieving token. ", err);
});
.then((currentToken) => {
if (currentToken) {
console.log("current token for client: ", currentToken);
setToken(currentToken);
// updateDeviceToken(currentToken)
// Perform any other neccessary action with the token
} else {
// Show permission request UI
console.log(
"No registration token available. Request permission to generate one."
);
}
})
.catch((err) => {
console.log("An error occurred while retrieving token. ", err);
});
}
return token;
};
export default useDeviceToken;