在Chrome扩展程序中无法获取Firebase消息传递令牌

时间:2018-07-08 08:13:55

标签: javascript google-chrome firebase google-chrome-extension firebase-cloud-messaging

我正在构建一个可以接收推送通知的chrome扩展程序。这已与Firebase的早期版本(4.4.0)一起使用,但是在最近升级到5.2.0之后,我不再能够获得令牌。请注意,在此升级过程中,我清除了一些缓存并进行了一些其他更改,因此它可能与新的FB版本无关。

从下面的代码和输出中可以看到,当我执行getToken()承诺时,它永远不会调用“ then”或“ catch”处理程序。我在控制台,“网络”选项卡上没有看到任何消息,或者说任何其他指示一切正在发生的消息。有什么想法吗?

  • Chrome版本67.0.3396.99(正式版本)(64位)
  • MAC 10.12.6

扩展程序的background.js中的代码:

var config = {
    apiKey: "...",
    authDomain: "...",
    databaseURL: "...",
    projectId: "...",
    storageBucket: "",
    messagingSenderId: "..."
};

firebase.initializeApp(config);
var fbmessaging = firebase.messaging();

function getToken(){

    trace('Getting new token');
    var promise = fbmessaging.getToken();

    trace('Have getToken() promise.  Executing.');
    promise.then(function(newToken) {
        trace('New token received: ' +newToken);
    })
    .catch(function(err) {
        trace('Unable to retrieve refreshed token ', err);
    });
}

fbmessaging.requestPermission()
.then(function() {
    trace('Notification permission granted.');
    getToken();
}).catch(function(err) {
    trace('Unable to get firebase messaging permission: ' +err);
});

fbmessaging.onTokenRefresh(function(arg) {
    trace("OnTokenRefresh called. " +arg);
    getToken();
});

完成跟踪的输出:

Notification permission granted.
Getting new token
Have getToken() promise.  Executing.

0 个答案:

没有答案