FCM:firebase getToken 选项(ServiceWorkerRegistration,vapidKey)

Off*_*arc 3 javascript firebase service-worker firebase-cloud-messaging

所以这就是 firebase 文档描述 get token 函数的方式:

getToken ( options ? : { serviceWorkerRegistration ?: ServiceWorkerRegistration ; vapidKey ?: string } ) : Promise <string>

可选选项:{ serviceWorkerRegistration?: ServiceWorkerRegistration; vapidKey?: 字符串 }

可选的 serviceWorkerRegistration?: ServiceWorkerRegistration 接收推送消息的服务工作者注册。如果未明确提供注册,则您的根位置需要有 firebase-messaging-sw.js。有关更多详细信息,请参阅检索当前注册令牌。

我只是想弄清楚如何在我的代码中使用 service worker 选项。我是不是像这样将文件位置放在 getToken('/file-location') 中?或者我是否导入了一个注册我的自定义 Firebase Service Worker 的函数?我可能只是愚蠢,但这些文档是准系统。

Fra*_*ici 6

如果你firebase-messaging-sw.js在你的(网络)服务器根目录中,你可以调用.getToken(),你的服务工作者将被自动加载和使用。

如果你有你的firebase-messaging-sw.jsat /my-other-folder,那么你需要这样称呼它:

const swRegistration = await navigator.serviceWorker.register('/my-other-folder/firebase-messaging-sw.js');
const token = await fcm.getToken({
  serviceWorkerRegistration: swRegistration,
});
Run Code Online (Sandbox Code Playgroud)