Firebase:如何停止收听快照

时间:2018-06-25 21:22:08

标签: javascript reactjs firebase listener google-cloud-firestore

我有一个JavaScript应用程序,该应用程序使用onSnapshot侦听器侦听Firebase集合中的更改。当我不再需要侦听器时,文档告诉我取消订阅。在React中,我会在componentWillUnmount()中进行此操作,但是如果我将侦听器设置为普通类(不是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 () {});
    }
}

1 个答案:

答案 0 :(得分:2)

在我看来,您只想在MyPresenter上创建一个称为“ stop()”或类似方法的方法,即可取消订阅。然后,在您的组件中,在其presenter.stop()期间调用componentWillUnmount()