javascript - 我们无法注册默认服务工作者
问题描述
我有文件 firebase-messaging-sw.js,它在网络中可见,也在控制台中记录消息。但是我得到了:
An error occurred while retrieving token. FirebaseError: Messaging: We are unable to register the default service worker. Failed to register a ServiceWorker: A bad HTTP response code (404) was received when fetching the script. (messaging/failed-serviceworker-registration).
at https://www.gstatic.com/firebasejs/6.6.1/firebase-messaging.js:1:29909:
我试图检查控制台并进行调试,但不确定是什么错误。
firebase-messaging-sw.js 文件包含:
importScripts('https://www.gstatic.com/firebasejs/4.1.3/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/4.1.3/firebase-messaging.js');
console.log("in sw page");
index.html 有:
firebase.initializeApp({
apiKey: "XXXXXX",
authDomain: "XXXX-XXXXX.firebaseapp.com",
databaseURL: "XXXXXXX",
projectId: "XXXXXX",
storageBucket: "",
messagingSenderId: "XXXXXXX",
appId: "XXXXX"
});
// // Initialize Firebase
const messaging = firebase.messaging();
Notification.requestPermission().then((permission) => {
if (permission === 'granted') {
navigator.serviceWorker.register('firebase-messaging-sw.js')
console.log('Notification permission granted.');
messaging.getToken().then((currentToken) => {
if (currentToken) {
console.log(currentToken);
} else {
// Show permission request.
console.log('No Instance ID token available. Request permission to generate one.');
}
}).catch((err) => {
console.log('An error occurred while retrieving token. ', err);
});
} else {
console.log('Unable to get permission to notify.');
}
});
一旦用户点击允许,我期望得到一个令牌。可能是什么原因?有什么解决办法吗?
解决方案
推荐阅读
- c# - 销毁实例化对象时 Unity 中的问题 - 销毁原始对象的所有克隆
- kdb - 在两台服务器之间复制数据
- list - 如何修复 vue 列表总和?
- html - 使用 save-svg-as-png 将 SVG 保存为 PNG
- firebase - Firestore 中软删除的建模数据
- windows - 有谁知道如何在window10 wampserver上使用seedDMS?
- symfony - Symfony:从 API 延迟加载关系
- c++ - 哪个是 MFC C++ 中单选组合框的事件处理程序
- java - 如何在 JPA 中获取外键引用以具有“ON UPDATE CASCADE ON DELETE CASCADE”功能?
- nginx - 如何将多个 url 的 301 重定向设置为单个 url?