javascript-firebase网络通知中的firebase-messaging-sw.js有什么用?
作者:互联网
我已经在网站上为Firebase推送通知配置了Javascript API.一切正常,但我看到许多“背景消息”.我只是将firebase-messaging-sw.js文件放在我的网站目录中.
我不知道它的用途.我只是想知道它在做什么.如果您看到以下代码,则会看到我仍未提供messagesSenderId,但该文件仍被执行.
所以我想知道的是:
没有ID如何运作?
有什么用?它是接收推送通知并在onMessage处理程序中处理它们的强制性文件吗?
我实际应该放在哪里(我的当前目录是:MY-SITE-DOMAIN / firebase-messaging-sw.js,但是firebase通知是在其他目录中配置的)?
这是代码:
importScripts('https://www.gstatic.com/firebasejs/3.5.2/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/3.5.2/firebase-messaging.js');
firebase.initializeApp({
'messagingSenderId': 'YOUR-SENDER-ID'
});
const messaging = firebase.messaging();
messaging.setBackgroundMessageHandler(function(payload) {
console.log('[firebase-messaging-sw.js] Received background message ', payload);
const notificationTitle = 'Background Message from html';
const notificationOptions = {
body: 'Background Message body.',
icon: '/firebase-logo.png'
};
return self.registration.showNotification(notificationTitle,
notificationOptions);
});
原始文件是here
解决方法:
您可以使用下面的配置,也可以仅使用messages.SenderID.
您可能已在其他JavaScript中设置了配置,因此该配置不会引发任何错误.
var config = {
apiKey: "",
authDomain: "",
databaseURL: "",
storageBucket: "",
messagingSenderId: ""
};
firebase-messaging-sw.js是必须的,并且应该存在于主机根目录中.当浏览器不在焦点或背景中时,这是设置后台通知处理程序所必需的.
标签:firebase,push-notification,service-worker,firebase-cloud-messaging,javascript 来源: https://codeday.me/bug/20191111/2021487.html