【发布时间】:2018-12-04 12:43:54
【问题描述】:
我有一个 javascript 应用程序,它使用 onSnapshot 侦听器来侦听我的 firebase 集合中的更改。当我不再需要听众时,文档告诉我取消订阅。在 React 中,我会在 componentWillUnmount() 中执行此操作,但如果我在 vanilla 类(不是 React)中设置了侦听器,在这种情况下我将如何取消订阅?
我是如何实现它的...
class MyComponent extends React.Component {
constructor() {
super();
this.presenter = new MyPresenter();
}
...rest of component
class MyPresenter {
constructor() {
const listener = db.collection("cities")
.onSnapshot(function () {});
}
}
【问题讨论】:
-
当您不再需要更新时,您将停止收听。鉴于目前的信息,不可能知道什么时候应该这样做。你必须弄清楚这一点。
-
@DougStevenson 我已将我的问题更新为更清晰
-
您在应用程序生命周期的某个位置调用此构造函数。您应该在其生命周期的相反位置调用
unsubscribe()。抱歉含糊其辞,但这是我现在能说的最好的了。
标签: javascript reactjs firebase listener google-cloud-firestore