【发布时间】:2016-10-30 22:16:23
【问题描述】:
我正在尝试将 Service Worker 与 Firebase 一起使用,以在 chrome 上实现推送通知。我的网络应用程序中有一个清单文件和一个 sw.js 文件。我在 Firebase 中创建了一个项目,并测试了注册和发送通知。这一切都很好,除了在接收通知时数据为空。我不明白为什么,也没有任何有用的资源(据我所知!)。 这是我的服务人员文件:
self.addEventListener('push', function(event) {
console.log('Push message', event);
var title = 'Push message';
event.waitUntil(
self.registration.showNotification(title, {
body: 'The Message',
icon: 'images/logo.svg',
tag: 'my-tag'
}));
});
这是我的 main.js 文件:
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/sw.js').then(function(registration) {
// Registration was successful
console.log('ServiceWorker registration successful with scope: ', registration.scope);
registration.pushManager.subscribe({
userVisibleOnly: true
}).then(function(sub) {
console.log('endpoint:', sub.endpoint);
}).catch(function(e) {
});
}).catch(function(err) {
// registration failed :(
console.log('ServiceWorker registration failed: ', err);
});
}
Manifest.json:
{
"name": "APPNAME",
"gcm_sender_id": "SENDERID"
}
cURL 请求:
curl --header "Authorization: key=APIKEY" -application/json" https://fcm.googleapis.com/fcm/send -d "{\"registration_ids\":[\"REGISTRATIONID\"],\"notification\":{\"title\":\"test\",\"body\":\"testing\"},\"data\":{\"title\":\"erse\"}}"
我没有收到我在请求中发送的任何数据。这是用firebase以其他方式完成的吗? 提前致谢。
【问题讨论】:
-
我也有这个问题
-
目前正在解决同样的问题。不要认为 firebase 目前支持我们通过 serviceWorkers 获得的 webPush ..
-
Firebase 仅受 Chrome 应用/扩展程序支持。 Chrome 中的 Web 推送当前使用 GCM 基础架构工作。 firebase.google.com/docs/cloud-messaging/chrome/client
标签: javascript firebase service-worker firebase-cloud-messaging