【问题标题】:VueJS : Firebase throws error "FirebaseError: Messaging: A problem occurred while subscribing the user to FCM"VueJS:Firebase 抛出错误“FirebaseError:消息:为用户订阅 FCM 时出现问题”
【发布时间】:2021-04-03 16:24:26
【问题描述】:

以下代码收到 Firebase 错误: “FirebaseError:消息:为用户订阅 FCM 时出现问题:请求缺少所需的身份验证凭据。需要 OAuth 2 访问令牌、登录 cookie 或其他有效的身份验证凭据”。

2 个月前它还在工作(我发誓),但我把它放在一边做其他工作,今天当我再次运行它时,我看到了这个错误。请让我知道我可能做错了什么。感谢您的帮助。

// Initialize Firebase, below snippet copied from Firebase console
// Your web app's Firebase configuration
this.firebaseConfig = {
    apiKey: "<MY API KEY>",
    authDomain: "<name>.firebaseapp.com",
    databaseURL: "<URL>",
    projectId: "<ProjectID>",
    storageBucket: "<storage bucket>",
    messagingSenderId: "<sendid>",
    appId: "<appID>"
};

firebase.initializeApp(this.firebaseConfig);

// Call Firebase and get toke, n
firebase.messaging().usePublicVapidKey("<VAPIDKEY>");

firebase.messaging()
    .getToken()
    .then(function (token) {
        TokenElem.innerHTML = "token is : " + token;
    })
    .catch(function (err) {
        ErrElem.innerHTML = ErrElem.innerHTML + "; " + err
        console.log("Unable to get permission.", err);
    });

【问题讨论】:

    标签: vue.js firebase-cloud-messaging


    【解决方案1】:

    确保您拥有有效的 VAPIDKEY,请参阅以下链接并检查这是否能解决您的问题。 link here

    我发现另一篇文章可能对您有所帮助。 Link here

    【讨论】:

    • 是的,我已经检查了该链接,并指定了一个有效的 VAPIDKEY。但没有运气。它适用于 ASP.NET,但不适用于 Vue。
    • 您能否在使用 firebase 消息传递之前检查用户是否经过身份验证
    • 是的,也这样做了,使用下面的代码。只是为了测试它,我尝试发送错误的密码,它立即抛出错误。我只在 SignIn 方法的响应中调用 requestPermission 和 getToken()firebase.auth().signInWithEmailAndPassword("", "") .then((userCredential) => { console.log('成功登录:' + firebase.auth().currentUser.getIdToken()); }) .catch(error => { console.log("AuthError:" + error.message); });;
    • 我也看到了第二个链接,您已粘贴但不确定它如何适用于我的 Vue JS 项目,因为我们没有通过 POST 方法进行 getToken() 调用。这是一个简单的消息传递.getToken() javascript 调用。
    猜你喜欢
    • 2020-08-08
    • 1970-01-01
    • 1970-01-01
    • 2021-04-22
    • 2019-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多