Получение уведомлений в мобильном приложении Ionic в фоновом режиме и на переднем плане через Node.js (firebase-admin) - PullRequest
0 голосов
/ 11 июня 2018

У меня есть мобильное приложение Ionic, которое получает уведомления от консоли Firebase.Приложение правильно получает уведомления в фоновом режиме и на переднем плане.Однако когда я отправляю уведомления из Node.js с плагином firebase-admin, приходит только уведомление переднего плана.Уведомления не приходят, когда приложение находится в фоновом режиме.

В чем может быть проблема?Кто-нибудь знает, почему мобильное приложение получает уведомления в фоновом режиме с консоли Firebase, а не с Node.js?

Спасибо за любую идею.

Это код в мобильном приложении (app.component.ts):

this.fcm.subscribeToTopic('all');

platform.ready().then(() => {

  this.fcm.getToken().then(token => {
    console.log(token);

    let alert = this.alertCtrl.create({
      title: '¡new notification!',
      message: token,
      buttons: [
        {
          text: 'Cancel',
          role: 'cancel',
          handler: () => {
            console.log('cancel button');
          }
        },
        {
          text: 'OK',
          handler: () => {
            console.log('ok button');
            this.navCtrl.push('DetailPage');
          }
        }
      ]
    });
  alert.present();

  });

  this.fcm.onNotification().subscribe(data => {
    alert('message received')
    if(data.wasTapped) {
     console.info("Received in background");
    } else {
     console.info("Received in foreground");
    };
  });

  statusBar.styleDefault();
  splashScreen.hide();
});

Это код в Node.js:

var sys = require("util");
var admin = require('firebase-admin');
var serviceAccount = require('./xxxx.json');

var registrationToken ="xxxxxx";

admin.initializeApp({
   credential: admin.credential.cert(serviceAccount),
   databaseURL: "https://xxxxx"
});

var message = {
data: {
  score: '850',
  time: '2:45'
    },
    token: registrationToken
};

admin.messaging().send(message)
.then(function(response) {
    console.log("Successfully sent message:", response);
})
.catch(function(error){
    console.log("Error sending message", error);
});
...