1

我在我的網站上爲Firebase推送通知配置了JavaScript API。一切工作正常,但我看到很多'背景消息'。我剛剛將firebase-messaging-sw.js文件放在我的網站目錄中。firebase-messaging-sw.js在firebase網絡通知中的用途是什麼?

我不知道它的用法。我只是想知道它做了什麼。如果你看到下面的代碼,你會看到我還沒有提供messagingSenderId這個文件仍然執行。

所以,我想知道的是:

它是如何工作沒有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

回答

1

您可以使用下面的配置或只是messagingSenderID。 你可能已經在其他javascript中設置了配置,因爲它沒有引發任何錯誤。

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

firebase-messaging-sw.js是必須的,應該存在於主機根目錄中。當瀏覽器不在焦點或後臺時,需要設置後臺通知處理程序。