Данные, поступающие из Firebase уведомления поступают Не определено? - PullRequest
0 голосов
/ 22 января 2019

Я использую собственную базу реагирования для push-уведомлений, и они работают нормально.Уведомления идут прямо.Проблема, с которой я сталкиваюсь, заключается в том, что когда я получаю уведомление, «заголовок» и «тело» полезных данных уведомления становятся неопределенными.

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

именно здесь я отправляю push-уведомления.

sendPushNotification = async (fcmToken, title, body) => {
const payload = {
  to: fcmToken,
  notification: {
    title: title,
    body: body,
    sound: "true"
  }
}

fetch("https://fcm.googleapis.com/fcm/send", {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'key=*****'
  },
  body: JSON.stringify(payload),
})
  .then((response) => response.json())
  .then((responseJson) => {
    console.log(responseJson)
  })
  .catch((error) => {
    console.log(error);
  });

}

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

async createNotificationListeners(nav) {
    /*
    * Triggered when a particular notification has been received in foreground
    * */
    this.notificationListener = firebase.notifications().onNotification( async (notification) => {
            const { title, body } = notification;
            await this.getConnectionsRequests();
            console.log("we are here")
            //this.showAlert(title, body);
    });

    /*
    * If your app is in background, you can listen for when a notification is clicked / tapped / opened as follows:
    * */
    this.notificationOpenedListener = firebase.notifications().onNotificationOpened( async (notificationOpen) => {
            const { title, body } = notificationOpen.notification;
            nav.navigate("MyChats")
            await this.getConnectionsRequests();
            //this.showAlert(title, body);
    });

    /*
    * If your app is closed, you can check if it was opened by a notification being clicked / tapped / opened as follows:
    * */
    const notificationOpen = await firebase.notifications().getInitialNotification();
    if (notificationOpen) {
            const { title, body } = notificationOpen.notification;
            nav.navigate("MyChats")
            // this.showAlert(title, body);
    }
    /*
    * Triggered for data only payload in foreground
    * */
    this.messageListener = firebase.messaging().onMessage((message) => {
    //process data message
    console.log(JSON.stringify(message));
    });
    } 

Я использую этих слушателей на другом экране следующим образом:

componentDidMount = async () => {
    await this.props.store.createNotificationListeners(this.props.navigation);

}

Когда вызывается NotificationOpenedListener, заголовок и тело должны совпадатькак тот, который я отправляю, используя sendPushNotification ().

Любая помощь будет оценена.Спасибо.

...