Firebase网络通知中firebase-messaging-sw.js的用途是什么?

时间:2017-02-25 11:47:29

标签: javascript firebase push-notification firebase-cloud-messaging service-worker

我已在我的网站上为firebase推送通知配置了Javascript API。一切都很好,但我看到很多'背景信息'。我刚把 firebase-messaging-sw.js 文件放在我网站的目录中。

我不知道它的用途。我只是想知道它做了什么。如果您看到以下代码,您会看到我还没有提供image=randi(4,4,4) k=6; trimmedHistogram=histKtoEnd(image,k) 此文件仍然执行。

所以我想知道的是:

如果没有ID,它是如何工作的?

有什么用?它是一个强制文件来接收推送通知并在histogram(imageWithoutKPixels)处理程序中处理它们吗?

我应该在哪里放置此文件(我当前的目录是: MY-SITE-DOMAIN / firebase-messaging-sw.js 但是firebase通知是在不同的目录中配置的)?

以下是代码:

messagingSenderId

原始档案是here

4 个答案:

答案 0 :(得分:3)

在项目的根目录下创建一个空文件firebase-messaging-sw.js

答案 1 :(得分:2)

您可以使用以下配置或仅使用messagingSenderID。 您可能已经在其他javascript中设置了配置,因为它没有引发任何错误。

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

firebase-messaging-sw.js是必须的,应该存在于主机根目录中。当浏览器不在焦点或后台时,这是设置后台通知处理程序所必需的。

答案 2 :(得分:1)

默认情况下,firebase将查找/firebase-messaging-sw.js,其中应包含firebase库和侦听器。此处有更多详细信息:https://firebase.google.com/docs/cloud-messaging/js/receive

如果您想使用现有的服务工作者,则可以使用https://firebase.google.com/docs/reference/js/firebase.messaging.Messaging#useServiceWorker

像这样...

navigator.serviceWorker.register('/service-worker.js').then(registration => {
  firebase.messaging().useServiceWorker(registration)
})

答案 3 :(得分:0)

在Apache Tomcat中,在/usr/share/apache-tomcat-9.0.30/webapps/ROOT中创建