停止 Firestore 中的 onSnapshot 功能

Lab*_*o28 6 javascript firebase google-cloud-firestore

有谁知道如何在 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'); 
    }
  }
)
Run Code Online (Sandbox Code Playgroud)

Dou*_*son 14

根据 API 文档,onSnapshot()返回

一个取消订阅函数,可以调用它来取消快照侦听器。

并展示了它的用法示例。

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