如果使用firebase.messaging().onMessage推送消息时未触发事件,我想在前台重新加载或触发某些事件。我正在使用带有后台通知的firebase.mesaging.sw.js,并且它可以正常工作,我的代码有什么问题?
firebase.js
const config = {
apiKey: "x",
projectId: "x",
storageBucket: "x",
messagingSenderId: "x"
};
firebase.initializeApp(config);
const msg = firebase.messaging()
msg.requestPermission()
.then(() => {
return msg.getToken()
})
.then((token) => {
})
.catch((err) => {
})
msg.onMessage(function(payload) {
alert("Foreground message fired!")
console.log(payload)
});
firebase.messaging.sw.js
importScripts("https://www.gstatic.com/firebasejs/7.0.0/firebase-app.js");
importScripts("https://www.gstatic.com/firebasejs/7.0.0/firebase-messaging.js");
const config = {
apiKey: "x",
projectId: "x",
storageBucket: 'x',
messagingSenderId: "x"
};
firebase.initializeApp(config);
const msg = firebase.messaging()
msg.setBackgroundMessageHandler(function(payload) {
let options = {
body: payload.data.body,
icon: payload.data.icon
}
return self.registration.showNotification(payload.data.title, options);
});
我不知道我的代码哪里出了问题
firebaseConfig
添加到initializeApp方法中,再清除Chrome数据和缓存以及重新注册通知最终解决了问题。你可以将缓存清理和重新注册建议添加到你的答案中。 - andreszs