【问题标题】:Firebase Cloud Messaging : Request is missing required Authentication CredentialsFirebase 云消息传递:请求缺少所需的身份验证凭据
【发布时间】:2020-10-14 05:11:07
【问题描述】:

我正在努力让 Firebase Cloud Messaging sdk 与 Nuxt JS 一起使用

我不断收到“检索令牌时出错。FirebaseError:消息传递:为用户订阅 FCM 时出现问题:请求缺少所需的身份验证凭据。需要 OAuth 2 访问令牌、登录 cookie 或其他有效的身份验证凭据。”

这是我在 fcm.js 中的代码,我在 nuxt.config.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() 行,它也不起作用。

谢谢。

【问题讨论】:

  • 确保仅在完成用户身份验证并填充您的商店后才调用 firebase 消息传递函数?
  • 已经试过了。同样的错误
  • firebase-messaging-sw.js 中是否需要添加任何内容才能正常工作?它目前是空的

标签: javascript vue.js firebase-cloud-messaging nuxt.js


【解决方案1】:

发现问题

firebase
  .messaging()
  .usePublicVapidKey(
    "BDYE2EYHdIp8qHjTKcJYPvO4PgaAH2pSruP55FOtNs5jWsgdeg7YK6OgJ0daSu21kN7aSzU19NRXRqC4bfITZYQ "
  );

在 firebase 控制台中,密钥对旁边会显示一个复制按钮。当点击它并粘贴时......它会在密钥对的末尾添加一个随机空格。

【讨论】:

    猜你喜欢
    • 2019-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-09
    • 2017-10-26
    • 1970-01-01
    • 2014-05-08
    • 2014-01-05
    相关资源
    最近更新 更多