我正在构建一个可以接收推送通知的chrome扩展程序。这已与Firebase的早期版本(4.4.0)一起使用,但是在最近升级到5.2.0之后,我不再能够获得令牌。请注意,在此升级过程中,我清除了一些缓存并进行了一些其他更改,因此它可能与新的FB版本无关。
从下面的代码和输出中可以看到,当我执行getToken()承诺时,它永远不会调用“ then”或“ catch”处理程序。我在控制台,“网络”选项卡上没有看到任何消息,或者说任何其他指示一切正在发生的消息。有什么想法吗?
扩展程序的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.