Firebase JS - getToken()不返回令牌

Alg*_*_NL 8 javascript firebase-cloud-messaging

我有以下代码,基于Google的文档:

var config = {
    apiKey: "XX",
    authDomain: "XX",
    databaseURL: "XX",
    storageBucket: "XX",
    messagingSenderId: "XX"
};
firebase.initializeApp(config);

const messaging = firebase.messaging();

messaging.requestPermission()
.then(function() {
    console.log('Notification permission granted.');
    messaging.getToken()
    .then(function(currentToken) {
        if (currentToken) {
            console.log(currentToken);
        } else {
            console.log('No Instance ID token available. Request permission to generate one.');
        }
    })
    .catch(function(err) {
        console.log('An error occurred while retrieving token. ', err);
    });
})
.catch(function(err) {
    console.log('Unable to get permission to notify. ', err);
});
Run Code Online (Sandbox Code Playgroud)

奇怪thenmessaging.getToken()是,从未调用过函数.控制台确实显示Notification permission granted.,但之后,它保持安静(即我也没有出现任何错误).

难道我做错了什么?

编辑:应该注意的是,我正在尝试在Chrome扩展程序中实现此功能.

Mer*_* Jo 8

我有同样的问题,我花了6个多小时来解决这个问题.您需要在主目录中创建虚拟"firebase-messaging-sw.js"(空文件)文件.

我的html页面位置是" http:// localhost:56050/Notification/index.html "
,我的firebase-messaging-sw.js是" http:// localhost:56050/firebase-messaging-sw.js "

  • 我可以在Firefox中获得令牌,但不能在chrome中获得令牌。它甚至不会抛出错误。我认为它超时了。有什么办法吗? (2认同)