我退出并登录到应用程序时出现以下错误。
code: "messaging/use-public-key-before-get-token",
message: "Messaging: Error (messaging/use-public-key-before-get-token)."
每次登录我的应用程序时,我都会先叫messaging.requestPermission()
然后叫messaging.getToken()
。该应用程序第一次运行良好,但是如果我注销并再次登录(再次触发permission
和getToken
),则返回上述错误。
Iam使用以下代码:
requestPermission() {
const messaging = firebase.messaging();
messaging.usePublicVapidKey(this.PUBLIC_VPA);
messaging.requestPermission().then(() => {
console.log('Notification permission granted.');
// Get Instance ID token. Initially this makes a network call, once retrieved
// subsequent calls to getToken will return from cache.
messaging.getToken().then((currentToken) => {
if (currentToken) {
console.log(currentToken, 'currentToken');
this.sendTokenToServer(currentToken);
} else {
console.log('No Instance ID token available. Request permission to generate one.');
this.generateRefreshToken();
}
}).catch((err) => {
console.log('An error occurred while retrieving token. ', err);
});
}).catch((err) => {
console.log('Unable to get permission to notify.', err);
});
}
任何建议都会有所帮助,谢谢
答案 0 :(得分:1)
当我遇到相同的问题时遇到了您的问题,但通过更新Firebase实例解决了该问题。在大多数情况下,您只需要一个FB实例,但如果不仔细管理应用程序如何使用Firebase,就会遇到冲突。
登录后再次尝试注销/登录时,将引发错误,因为您可能在尝试检索实例时尝试使用信息冲突的FB消息服务。
我正在使用Redux,实际上是通过与我的商店同步的监听器来更新FB实例firebase.initializeApp({config})
。
希望您也能解决。