Bol*_*ola 9 javascript firebase reactjs firebase-cloud-messaging
我试着在我的React项目中使用Firebase FCM(使用webpack)
尝试使用getToken()时:
messaging.requestPermission()
.then(function() {
console.log('Notification permission granted.');
return messaging.getToken();
})
.then(function(token) {
console.log('token')
})
.catch(function(err) {
console.log('Unable to get permission to notify.', err);
});
Run Code Online (Sandbox Code Playgroud)
抛出异常如下:
browserErrorMessage: "Failed to register a ServiceWorker: The scrip
has an unsupported MIME type ('text/html')
Run Code Online (Sandbox Code Playgroud)
我知道这个问题与丢失的服务工作文件有关:firebase-messaging-sw.js,我添加到项目的根目录但我仍然得到同样的错误.
我不知道我在这里做错了什么,我已经设置了vanilla java脚本项目,它工作正常....
关于这个问题的任何想法?
Hum*_*ent 18
对于那些使用create-react-app的人,你可以在公共文件夹中创建firebase-messaging-sw.js,并在index.js上添加:
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('../firebase-messaging-sw.js')
.then(function(registration) {
console.log('Registration successful, scope is:', registration.scope);
}).catch(function(err) {
console.log('Service worker registration failed, error:', err);
});
}
Run Code Online (Sandbox Code Playgroud)
如果您使用的是create-react-app。将firebase-messaging-sw.js添加到您的公用文件夹并重建。firebase-messaging-sw.js可以是一个空文件
如果您使用的是Firebase,请进行响应,然后使用create react app搭建您需要做的事情:
(基于@Humble Student答案)
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('../firebase-messaging-sw.js')
.then(function(registration) {
firebase.messaging().useServiceWorker(registration);
}).catch(function(err) {
console.log('Service worker registration failed, error:', err);
});
}
Run Code Online (Sandbox Code Playgroud)
希望有帮助!
| 归档时间: |
|
| 查看次数: |
6647 次 |
| 最近记录: |