创建查询快照以侦听实时更改

我创建了一个使用 if 条件从 Firestore 获取数据的函数。我已经用.get()方法实现了,但它并没有实时更新,我的意思是如果服务器中更新了任何记录,它不会在这里反映。


这是我的功能


   async getMyPosts() {

    this.query = firebase.firestore().collection('complaints')

    if (this.complaint_status_filter_active==true) {  // you decide

      this.query = this.query

      .where('complaint_status', '==', this.complaint_status_filter_value)

      .limit(5)

    }

    const questions = await this.query.get()

      .then(snapshot => {

        snapshot.forEach(doc => {

          console.log(doc.data())

        })

      })

      .catch(catchError)

  }

应该使用什么而不是get()实时更新


编辑 1

在下面的示例中,我可以使用 Angular Firestore 使用快照更改,但在这里我无法使用if条件


如何在此处使用 if 子句添加 where 条件?代码:


  this.firestore.collection('complaints' , ref => ref

.where('complaint_status', '==', this.complaint_status_filter_value)

.limit(5)

.orderBy("complaint_date","desc") 

)

.snapshotChanges()

.subscribe(response => {


慕尼黑的夜晚无繁华
浏览 77回答 1
1回答

浮云间

使用onSnapshot()获取实时更新,如文档中所示。this.query.onSnapshot(doc => {    // ...})
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript