Как отписаться о реакции-native-firebase getInitialNotification - PullRequest
0 голосов
/ 28 ноября 2018

Я использую react-native-firebase для push-уведомлений в приложении react-native.

При получении уведомления откройте приложение, нажав на уведомление (это работает правильно, вызывая функцию getInitialNotification).Тем не менее, когда я перехожу с одного экрана на другой, он будет запущен снова.Как это можно остановить?Есть ли альтернатива, чтобы отменить подписку на это событие после его запуска?Или есть ли решение этой проблемы?

class Header extends Component {
  async componentDidMount() {
    this.checkPermission();
    this.createNotificationListeners();
  }

  componentWillUnmount() {
    this.notificationListener();
    this.notificationOpenedListener();
  }

  async checkPermission() {
    const enabled = await firebase.messaging().hasPermission();
    if (enabled) {
        this.getToken();
    }
  }

  async getToken() {
   //token retrieve code
  }

  async createNotificationListeners() {

    firebase.messaging().subscribeToTopic("all")

    /*
    * 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) {
        alert(title, body);

    }
  }

  render() {
    return (
        <View></View>
    );
  }
}
...