在Firestore中停止onSnapshot功能

时间:2018-12-26 23:23:07

标签: javascript firebase google-cloud-firestore

有人知道如何在Firestore中使用onSnapshot函数吗? 我想如果条件满足,函数将离开并且数据库请求将退出。 该函数由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'); 
    }
  }
)

1 个答案:

答案 0 :(得分:1)

根据API文档,onSnapshot()返回

  

可取消订阅功能以取消快照侦听器。

并显示其用法示例。

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