为什么我在 Vue js 中尝试从 firebase 检索令牌时出现错误?
我尝试将 firebase 实现到我的 vue.js 项目中,但在
firebase.messaging.getToken()
上出现错误。这是我的问题的屏幕截图
错误:
脚本的 MIME 类型不受支持('text/html')。
无法加载资源:net::ERR_INSECURE_RESPONSE
无法获取通知权限。
-
browserErrorMessage : “无法注册 ServiceWorker:脚本的 MIME 类型('text/html')不受支持。”
-
code : “messaging/failed-serviceworker-registration”
-
message : “消息:我们无法注册默认服务工作者。无法注册 ServiceWorker:脚本的 MIME 类型('text/html')不受支持。(messaging/failed-serviceworker-registration)。”
-
stack : “FirebaseError:消息:我们无法注册默认服务工作者。无法注册 ServiceWorker:脚本的 MIME 类型('text/html')不受支持。(messaging/failed-serviceworker-registration)。↵ 在 eval (webpack-internal:///./node_modules/@firebase/messaging/dist/index.esm.js:1950:32)"
这是我的代码。
firebase.messaging().requestPermission().then(function () {
console.log('Notification permission granted.')
return firebase.messaging().getToken()
.then(function (currentToken) {
console.log(currentToken)
})
}).catch(function (err) {
console.log('Unable to get permission to notify.', err)
})
Service Workers
有人知道如何解决这个问题吗?我尝试了很多方法,但还是没能解决。你能帮帮我吗?
谢谢。
尝试将文件(或创建文件)“ firebase-messaging-sw.js ”放入 /public 文件夹内
在 firebase-messaging-sw.js 内复制并粘贴此内容(并更改 YOUR-SENDER-ID ):
// Give the service worker access to Firebase Messaging.
// Note that you can only use Firebase Messaging here, other Firebase libraries
// are not available in the service worker.
importScripts('https://www.gstatic.com/firebasejs/4.8.1/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/4.8.1/firebase-messaging.js');
// Initialize the Firebase app in the service worker by passing in the
// messagingSenderId.
firebase.initializeApp({
'messagingSenderId': 'YOUR-SENDER-ID'
});
// Retrieve an instance of Firebase Messaging so that it can handle background
// messages.
const messaging = firebase.messaging();
对我有用(使用 React)