在react-native中嵌套onSnapshot侦听器上的firestore吗?

问题描述 投票:-1回答:1

我正在尝试为我的应用执行类似的操作:

snapshotListeners() {
  firestore()
    .collectionGroup()
    .where()
    .onSnapshot({
      error: //Handle error
      next: firstSnapshot => {
        firstSnapshot.docsChanges().forEach(change => {
          //Data retrieved and used in the below query to get more data
          firestore()
            .collection()
            .where() //using the data retrived from the above query here.
            .onSnapshot({
              error: //Handle error
              next: secondSnapshot => {
                secondSnapshot.docsChanges().forEach(change =>{
                  //More Data from second query
                })
              }
            })
        })
      }
    })
}

第二个查询取决于从第一个查询检索到的数据,我希望在各自文档中的两个查询中侦听更改。

例如,组功能:这是我的数据库结构:

Groups(top-level collection)
    |_groupId(documents) - Members(subcollection) 
    |_groupId             |     |_uid(document)
                          |     |_uid
                          |
                          |__groupdata(Fields like title, description, etc)

因此,我将使用first listener来侦听Members子集合中特定用户文档的更改,并使用second listener实时获取他所在的组(有关组的数据),以便当他从组中添加/删除,列表/前端就像WhatsApp一样自动更新。

或者即使组数据如标题,说明等发生了更改,这些更改也会在前端听到并更新。

是针对此用例建议的快照侦听器嵌套还是有其他方法?

非常感谢您的帮助。

javascript firebase react-native google-cloud-firestore react-native-firebase
1个回答
1
投票

嵌套这样的听众是很正常的,并且以合理的规模完成时,不必担心。合理是有点主观和依赖的,但可以说:适合移动应用程序的单个屏幕的东西可能是合理的上限。

© www.soinside.com 2019 - 2024. All rights reserved.