J'ai donc besoin de mettre en place des notifications push web dans notre application web, j'ai réussi à configurer la messagerie cloud firebase dans mon application avec l'aide de docs, je peux demander à l'utilisateur pour autoriser l'autorisation des notifications et obtenir l'ID de jeton s'il accepte la permission. Le problème est que lorsque j'essaie d'envoyer une notification pour tester le jeton généré, j'obtiens une réponse indiquant que le message est envoyé, mais je ne suis pas en mesure de le recevoir du côté client.Je ne reçois pas la notification push FCM pour le web sur localhost
Mon index.html
<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>
Je suis en mesure d'enregistrer avec succès le dossier des travailleurs de service
Mes App.component.ts
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);
});
Je reçois la boîte de dialogue d'autorisation case demandant la permission et obtenir un jeton avec ce code
Le code de la boucle que j'ai utilisé pour envoyer des messages
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"
Je suis en mesure d'envoyer des notifications avec succès avec ce code
Je ne peux pas savoir où je vais mal, peut-être parce qu'il est sur localhost? peut-être la méthode onMessage ne fonctionne pas correctement? Toute aide est grandement appréciée!
Le travailleur de service ne travaille pas sur des origines non sécurisées. donc votre localhost doit être sur https. –
Avez-vous découvert le problème? J ai exactement le même problème. – chrisonline
Non, je vous le ferai savoir si je trouve –