Javascript 如何使用js刷新FCM令牌
我正在为我的React web推送通知设置FCM,它正在正确地执行所有操作,但我不知道如何在令牌过期时刷新令牌 我有一个FCMListener函数,它的代码如下Javascript 如何使用js刷新FCM令牌,javascript,reactjs,firebase,firebase-cloud-messaging,Javascript,Reactjs,Firebase,Firebase Cloud Messaging,我正在为我的React web推送通知设置FCM,它正在正确地执行所有操作,但我不知道如何在令牌过期时刷新令牌 我有一个FCMListener函数,它的代码如下 navigator.serviceWorker .register("/static-files/firebase-messaging-sw.js") .then((registration) => { firebase.initializeApp(settings.getConfi
navigator.serviceWorker
.register("/static-files/firebase-messaging-sw.js")
.then((registration) => {
firebase.initializeApp(settings.getConfig().FIREBASE_CONFIG);
const messaging = firebase.messaging();
messaging.useServiceWorker(registration);
try {
messaging
.requestPermission()
.then(() => {
return messaging.getToken();
})
.then((token) => {
let topic = `${userInfo.is_host ? "host" : "guest"}`;
if (token) {
this.subscribeToTopic(topic, token);
this.sendTokenToServer({
os: "web",
push_token: token,
});
} else {
messaging.onTokenRefresh(() => {
messaging
.getToken()
.then((refreshedToken) => {
this.subscribeToTopic(topic, token);
this.sendTokenToServer({
os: "web",
push_token: refreshedToken,
});
})
.catch((err) => {
console.log("Unable to retrieve refreshed token ", err);
});
});
}
});
} catch (error) {
if (error.code === "messaging/permission-blocked") {
console.log("Please Unblock Notification Request Manually");
} else {
console.log("Error Occurred", error);
}
}
messaging.onMessage((payload) => {
console.log("Notification Received", payload);
alert(payload.notification.body);
});
});
};
}
由于我不知道如何使firebase令牌过期,也无法测试令牌过期时会发生什么,我不知道我尝试刷新令牌的部分是否正确,甚至不知道这是否是获取刷新令牌的正确方法。我非常感谢任何提示和建议出于测试目的,您可以通过调用API删除FCM令牌。完成此操作后,重新加载页面,将触发onTokenRefresh。出于测试目的,您可以通过调用API来删除FCM令牌。完成此操作后,重新加载页面,您的onTokenRefresh将启动