Push-уведомление не работает в приложении Angular 7 с firebase - PullRequest
1 голос
/ 28 марта 2019

Я перешел по этой ссылке для интеграции https://medium.com/@a.adendrata/push-notifications-with-angular-6-firebase-cloud-massaging-dbfb5fbc0eeb

Вот firebase-messaging-sw.js

importScripts('https://www.gstatic.com/firebasejs/3.9.0/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/3.9.0/firebase-messaging.js');

// Initialize the Firebase app in the service worker by passing in the
// messagingSenderId.
firebase.initializeApp({
  'messagingSenderId': '426004542538'
});

// Retrieve an instance of Firebase Messaging so that it can handle background
// messages.
const messaging = firebase.messaging();

Ниже приведен файл среды, содержащий информацию о конфигурации

export const environment = {
  production: false,
  firebase: {
    apiKey: "AIzaSyBvhz9Ml0Nd68SR8BRDxO10q6Hyptcnrjk",
    authDomain: "pushnotification-7fd02.firebaseapp.com",
    databaseURL: "https://pushnotification-7fd02.firebaseio.com",
    projectId: "pushnotification-7fd02",
    storageBucket: "pushnotification-7fd02.appspot.com",
    messagingSenderId: "426004542538"
  }
};

В почтальоне я использую команду curl для firebase

curl -X POST \
  https://fcm.googleapis.com/fcm/send \
  -H 'Authorization: key=AAAAYy_ZdEo:AP..........' \
  -H 'Content-Type: application/json' \
  -d '{ 
 "notification": {
  "title": "Hello World", 
  "body": "This is Message from Admin"
 },
 "to" : "fDFFOme2rEI:APA91bHnZGmt6ae5Jyuv2vI4WGBOg3XKMwtHpZIFAYa9slacU9Uvam_7OHSUs0k_TFwRqDZFwZ6WF2IqdOH7Mj1u6BSbunsPuYxeH1zFivnPYfQoZfxqbSkxQYDMDoO21xjUpSDWxqbp"
}'

Ответ почтальона

{
    "multicast_id": 4927361125379832815,
    "success": 1,
    "failure": 0,
    "canonical_ids": 0,
    "results": [
        {
            "message_id": "0:1553764018334820%2fd9afcdf9fd7ecd"
        }
    ]
}

Несмотря на то, что ответ почтальона 200 успешен, все же данные не сохраняются вfirebase & я не получаю никаких push-уведомлений.Я запускаю ng serve --port 3000, который развертывается на localhost: 3000.

1 Ответ

2 голосов
/ 06 мая 2019

пожалуйста, измените firebase-messaging-sw.js на это, я думаю, тогда он будет запущен

     importScripts('https://www.gstatic.com/firebasejs/3.9.0/firebase-app.js');
     importScripts('https://www.gstatic.com/firebasejs/3.9.0/firebase-messaging.js');
      var config = {
       apiKey: ..... ,
       authDomain: .....,
       databaseURL: .....,
       projectId: .....,
       storageBucket: .....,
       messagingSenderId: .....
          };
      firebase.initializeApp(config);
      const messaging = firebase.messaging();

или, если вы хотите настроить отображение уведомлений, используйтеэто также после кода выше

       messaging.setBackgroundMessageHandler(function(payload) {
       const title = payload.data.title;
        const option = {              
          body: payload.data.message 
          icon: 'Path' 
          }  
             return self.registration.showNotification(title,option);
            });
...