当用户刚从应用退出时,取消订阅Firestore onSnapshot侦听器

时间:2019-06-02 08:13:22

标签: ionic3 google-cloud-firestore

我在尝试在Firestore onSnapshot侦听器上实现取消订阅时遇到问题。问题是当我尝试覆盖后退按钮的功能时,后退按钮不会关闭应用程序,而且我不确定它是否已从onSnapshot侦听器取消订阅,如果无法取消订阅,则如何关闭该应用程序

编码我的尝试:

platform.registerBackButtonAction(() =>{
        customer.unsubscribe();
      })
 this.unsubscribe = this.db.collection(this.collectionName).orderBy('name')
    .where("deleted","==",false)
    .onSnapshot(customerSnapshot =>{

说明:这里客户是提供者,而退订是客户提供者中的数据成员。

注意:我不希望用户确认关闭应用程序,因此没有警报控件

:firebase是否提供任何机制来验证订阅是否已分离。

谢谢

1 个答案:

答案 0 :(得分:0)

通常最好在lifecycle method中取消订阅数据库侦听器,例如ionViewWillLeaveionViewDidLeave。最常见的是,您将使用与预订相反的方法退订。因此,如果您将监听器附加在ionViewWillEnter中,请在ionViewDidLeave中取消订阅。

一旦您调用了unsubscribe方法并返回,侦听器将被删除。但是无法通过取消订阅的方法查看是否已调用该方法,因此您必须自己进行跟踪。