【问题标题】:Stop onSnapshot function in firestore在 Firestore 中停止 onSnapshot 功能
【发布时间】:2019-05-25 01:51:56
【问题描述】:

有谁知道如何在 Firestore 中取出 onSnapshot 函数。 我想如果 if 条件满足该函数将离开并且数据库请求将退出。 该函数由 onClick 调用,第一步是在数据库中添加一些内容。第二步应该是,如果它已经在集合中,那么在您将信息添加到数据库中之后停止实时请求并停止该功能。用户不应该注意到更多意味着不再从数据库更新的功能。我希望有人可以帮助我。

  db.collection('Requests').doc('lobby1').collection('1').add({
            name: 'test',
            createdAt: Date.now()
        }).catch(err =>{
            console.log(err)
        })  

  let ref= db.collection('Requests').doc('lobby1').collection('1')
  ref.onSnapshot(snapshot => {
    console.log(snapshot.size)
    if(snapshot.size >= 2){
        console.log('Test'); 
    }
  }
)

【问题讨论】:

    标签: javascript firebase google-cloud-firestore


    【解决方案1】:

    根据 API 文档,onSnapshot() 返回

    可以调用取消快照监听器的取消订阅函数。

    并显示其用法示例。

      const unsubscribe = ref.onSnapshot(snapshot => {
        console.log(snapshot.size)
        if(snapshot.size >= 2){
            console.log('Test'); 
            unsubscribe();
        }
      }
    

    【讨论】:

    • 嗨,道格。似乎即使在触发unsubscribe 之后,对google.firestore.v1.Firestore/Listen/channel 的请求轮询仍然在后台继续?我会假设通过调用unsubscribe 它也会阻止这些事情的发生。除非有别的办法?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-09
    • 2012-08-10
    • 1970-01-01
    相关资源
    最近更新 更多