如何删除 firebase.notifications().onNotificationOpened 监听器?

Posted

技术标签:

【中文标题】如何删除 firebase.notifications().onNotificationOpened 监听器?【英文标题】:how to remove firebase.notifications().onNotificationOpened listener? 【发布时间】:2019-02-05 00:55:15 【问题描述】:

我正在开发一个 react native 项目并使用 react-native-firebase 库。设置监听器正在工作,但我无法找到删除监听器的方法。

我在主页上设置了这个监听器,所以每当用户访问主页时。侦听器被多次注册,结果被多次操作。

我想销毁这个监听器,然后重新开始一个新的。

firebase.notifications().onNotificationOpened((notificationOpen) => 
        if (notificationOpen) 
          const notification: Notification = notificationOpen.notification;
          if(notification.data.type)
          
        
      );

如果有人可以提供帮助,将不胜感激......

【问题讨论】:

【参考方案1】:

您需要再次调用侦听器以将其删除,如docs 中所述。

componentDidMount() 
    this.notificationOpenedListener = firebase.notifications().onNotificationOpened((notificationOpen) => 
          //... Your Stuff
   


componentWillUnmount() 
    this.notificationOpenedListener();

【讨论】:

我不想在卸载时删除它,但我想在注销时删除它。当用户注销时,它会破坏......我们有什么办法吗? this.notificationOpenedListener = firebase.notifications().onNotificationOpened((notificationOpen) => if (notificationOpen) const notification: Notification = notificationOpen.notification; if(notification.data.type) firebase.notifications().removeAllDeliveredNotifications() ); console.log('notificationOpenedListener', this.notificationOpenedListener()); this.notificationOpenedListener() ->> 这是未定义的 这是因为console在函数初始化之前执行得更快 我也试过了,但还是不行。由于所有其他操作也被多次调用,因此它已多次注册。

以上是关于如何删除 firebase.notifications().onNotificationOpened 监听器?的主要内容,如果未能解决你的问题,请参考以下文章

如何删除多余的控件

如何删除FTP文件

如何恢复hadoop中被删除的文件

如何删除系统镜像中的自带软件

中普软件如何删除项目

如何删除TAG?