我在尝试在Firestore onSnapshot侦听器上实现取消订阅时遇到问题。问题是当我尝试覆盖后退按钮的功能时,后退按钮不会关闭应用程序,而且我不确定它是否已从onSnapshot侦听器取消订阅,如果无法取消订阅,则如何关闭该应用程序
编码我的尝试:
platform.registerBackButtonAction(() =>{
customer.unsubscribe();
})
this.unsubscribe = this.db.collection(this.collectionName).orderBy('name')
.where("deleted","==",false)
.onSnapshot(customerSnapshot =>{
说明:这里客户是提供者,而退订是客户提供者中的数据成员。
注意:我不希望用户确认关闭应用程序,因此没有警报控件
还:firebase是否提供任何机制来验证订阅是否已分离。
谢谢
答案 0 :(得分:0)
通常最好在lifecycle method中取消订阅数据库侦听器,例如ionViewWillLeave
或ionViewDidLeave
。最常见的是,您将使用与预订相反的方法退订。因此,如果您将监听器附加在ionViewWillEnter
中,请在ionViewDidLeave
中取消订阅。
一旦您调用了unsubscribe方法并返回,侦听器将被删除。但是无法通过取消订阅的方法查看是否已调用该方法,因此您必须自己进行跟踪。