Я пытаюсь сделать что-то подобное для своего приложения:
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
})
}
})
})
}
})
}
Второй запрос зависит от данных, полученных из первого, и я sh буду прослушивать изменения в обоих запросы в соответствующих документах.
Например, функциональность группы: Это моя структура базы данных:
Groups(top-level collection)
|_groupId(documents) - Members(subcollection)
|_groupId | |_uid(document)
| |_uid
|
|__groupdata(Fields like title, description, etc)
Так что я буду использовать first listener
для прослушивания изменений в документах этого конкретный пользователь в подколлекции Members и second listener
для извлечения групп (данных о группах) он находится в режиме реального времени, так что когда он добавляется / удаляется из группы, список / интерфейс автоматически обновляется так же, как WhatsApp.
Или даже если данные группы изменяются как заголовок, описание и т. Д. c. эти изменения прослушиваются и обновляются во внешнем интерфейсе.
Рекомендовано ли это вложение слушателей моментальных снимков для этого варианта использования или есть другой способ?
Справка будет очень признательна.