我有以下代码,基于 Google's Documentation :
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);
});
奇怪的是,从未调用messaging.getToken()
的then
函数。控制台确实显示 Notification permission granted.
,但在那之后,它保持安静(即我也没有收到任何错误)。
我做错了什么吗?
编辑:应该注意的是,我正在尝试在 Chrome 扩展程序中实现这一点。
最佳答案
我有同样的问题,我花了6个多小时才解决这个问题。您需要在主目录中创建虚拟“firebase-messaging-sw.js”(空文件)文件。
我的 html 页面位置是“ http://localhost:56050/Notification/index.html ”
我的 firebase-messaging-sw.js 是“ http://localhost:56050/firebase-messaging-sw.js ”
关于javascript - Firebase JS - getToken() 不返回 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40239968/