Vì vậy, tôi cần triển khai thông báo đẩy web trong ứng dụng web của mình, tôi đã thiết lập thành công tin nhắn trên đám mây firebase trong ứng dụng của mình với sự trợ giúp của tài liệu, tôi có thể hỏi người dùng để cho phép thông báo và nhận id mã thông báo nếu anh ấy chấp nhận quyền.Không nhận được thông báo đẩy FCM cho web trên localhost
Vấn đề là khi tôi cố gắng gửi thông báo để kiểm tra mã thông báo đã tạo, tôi nhận được phản hồi rằng thư được gửi nhưng tôi không thể nhận được thư ở phía máy khách.
index.html My
<head>
<script src="https://www.gstatic.com/firebasejs/4.4.0/firebase.js"></script>
<link rel="manifest" href="./firebase.json">
</head>
<script>
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('./firebase-messaging-sw.js').then(function(registration) {
console.log('Firebase Worker Registered');
}).catch(function(err) {
console.log('Service Worker registration failed: ', err);
});
}
</script>
Tôi thành công có thể đăng ký hồ sơ người lao động dịch vụ
App.component.ts My
var config = {
apiKey: "somekey",
authDomain: "someproject-2.firebaseapp.com",
databaseURL: "https://someproject-2.firebaseio.com",
projectId: "someproject-2",
storageBucket: "",
messagingSenderId: "someid"
};
firebase.initializeApp(config);
const messaging = firebase.messaging();
messaging.requestPermission()
.then(function() {
console.log('Notification permission granted.');
return messaging.getToken()
})
.then(function(result) {
console.log("The token is: ", result);
})
.catch(function(err) {
console.log('Unable to get permission to notify.', err);
});
messaging.onMessage(function(payload) {
console.log("Message received. ", payload);
});
tôi nhận được hộp thoại cho phép hộp yêu cầu sự cho phép và nhận mã thông báo với mã này
Mã curl tôi đã sử dụng để gửi tin nhắn
curl -X POST -H "Authorization: key=somekey" -H "Content-Type: application/json" -d '{
"notification": {
"title": "Portugal vs. Denmark",
"body": "5 to 1",
"icon": "firebase-logo.png",
"click_action": "http://localhost:8081"
},
"to": "sometoken"
}' "https://fcm.googleapis.com/fcm/send"
Tôi có thể gửi thông báo thành công với mã này
tôi không thể tìm ra nơi tôi sẽ sai, có lẽ bởi vì nó là trên localhost? có lẽ phương thức onMessage không chạy đúng cách? Bất kỳ sự trợ giúp nào cũng được đánh giá cao!
Nhân viên dịch vụ không hoạt động trên nguồn gốc không an toàn. do đó localhost của bạn phải có trên https. –
Bạn có tìm thấy sự cố không? Tôi có chính xác cùng một vấn đề. – chrisonline
Không bro, sẽ cho bạn biết nếu tôi tìm ra –