我正在努力让Firebase Cloud Messaging SDK与Nuxt JS一起使用
我一直在获取“检索令牌时发生错误。FirebaseError:消息传递:在向用户订阅FCM时发生问题:请求缺少必需的身份验证凭据。预期的OAuth 2访问令牌,登录cookie或其他有效的身份验证凭据。”
这是我作为nuxt.config.js中的一个插件运行的fcm.js中的代码
import firebase from "../firebase/init";
firebase
.messaging()
.usePublicVapidKey(
"BDYE2EYHdIp8qHjTKcJYPvO4PgaAH2pSruP55FOtNs5jWsgdeg7YK6OgJ0daSu21kN7aSzU19NRXRqC4bfITZYQ "
);
firebase
.messaging()
.getToken()
.then((currentToken) => {
console.log(currentToken);
if (currentToken) {
sendTokenToServer(currentToken);
updateUIForPushEnabled(currentToken);
} else {
// Show permission request.
console.log(
"No Instance ID token available. Request permission to generate one."
);
// Show permission UI.
updateUIForPushPermissionRequired();
setTokenSentToServer(false);
}
})
.catch((err) => {
console.log("An error occurred while retrieving token. ", err);
showToken("Error retrieving Instance ID token. ", err);
setTokenSentToServer(false);
});
同时,如果您想知道用户是否已通过身份验证。该用户肯定已通过身份验证,因为我可以访问受保护的页面中的Firestore数据和路由,并且可以在vuex存储中看到UID详细信息。所以那边没有问题。我也尝试过删除usePublicVapidKey()行,它也行不通。
谢谢。
答案 0 :(得分:1)
发现问题
firebase
.messaging()
.usePublicVapidKey(
"BDYE2EYHdIp8qHjTKcJYPvO4PgaAH2pSruP55FOtNs5jWsgdeg7YK6OgJ0daSu21kN7aSzU19NRXRqC4bfITZYQ "
);
在Firebase控制台中,密钥对旁边显示一个复制按钮。单击并粘贴...时,它将在密钥对的末尾添加一个随机空间。