2016-11-25 5 views
2

Я использую nativescript-local-уведомления и nativescript-plugin-firebase.Nativescript. nativescript-local-уведомления всегда создают два уведомления

Я хочу создавать уведомления каждый раз, когда сервер отправляет мне сообщение. Вот код:

firebase.init({ 
     storageBucket: 'gs://shao-by-partner-firebase.appspot.com', 
     persist: true, // optional, default false 


     onPushTokenReceivedCallback: function (token) { 
      Config.device_token = token; 
      console.log("Firebase plugin received a push token: " + token); 
     }, 
     onMessageReceivedCallback: function (message) { 
        LocalNotifications.schedule([{ 
         id: 1, 
         title: 'The title', 
         body: 'Recurs every minute until cancelled', 
         ticker: 'The ticker', 
         badge: 1, 
         smallIcon: 'res://heart.png' 
         }]).then(
          function() { 
          console.log("Notification scheduled"); 
          }, 
          function(error) { 
          console.log("scheduling error: " + error); 
          } 
        ) 
     } 
    }).then(
     function (result) { 
      console.log("Firebase is ready"); 
     }, 
     function (error) { 
      console.log("firebase.init error: " + error); 
     } 
    ); 
} 

Но всегда создавалось два уведомления вместо одного. И первое уведомление пусто. И второе уведомление - это то, что я создал. Что не так?

enter image description here

ответ

0

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

nativescript-plugin-firebase уже обрабатывает уведомления для вас, я не думаю, что вам нужен плагин локальных уведомлений.

В примере, который вы опубликовали, вы получаете оригинальное уведомление (пустое), создаете локальный файл, который вы создаете в onMessageReceivedCallback.

https://github.com/EddyVerbruggen/nativescript-plugin-firebase/blob/master/docs/MESSAGING.md#handling-a-notification

+0

Возможно, вы правы, но когда я удаляю LocalNotifications.schedule (...), оба уведомления не создаются. –

+0

Да, вы были абсолютно правы, извините, так долго ответили –

0

ничего в вашем onMessageReceived, чтобы определить, является ли сообщение было содержание. Вы можете попробовать добавить условный оператор к своей функции onMessageReceived и проверить, имеет ли сообщение контент. например

if (message.title){ 
    //send local notification 
} 
+0

Я проверяю его. Но это не решает проблему. –

0

я нашел решение. Каждый раз, когда я создаю LocalNotification, я удаляю уведомление с идентификатором 0: LocalNotifications.cancel (0); Но я до сих пор не знаю, откуда он.