с учетом коллекции в хранилище типа: collection (chat) .do c (id) .collection (messages) .do c (id) Мне нужно восстановить все чаты и в том же массиве объекты также имеют последние отправленные сообщения. Как я могу объединить два запроса firestore в один метод с операторами rx js?
первый запрос:
this.afs.collection(conversationId, list =>
list.where('store_code', '==', storeCode)
).snapshotChanges().pipe(
map(resp => resp.filter((chat: any) => chat.payload.doc.data().assignee !== '')),
map(resp => resp.filter((chat: any) => chat.payload.doc.data().assignee !== userId)),
map(resp => {
return resp.map(chat => {
return {...chat.payload.doc.data() as ActiveChat, idChat: chat.payload.doc.id}
})
}
),
)
второй запрос:
this.afs.collection(conversationId)
.doc(chat.idChat)
.collection('messages', ref => ref.orderBy('message_timestamp', 'asc').limit(1))
.valueChanges()
I ожидайте финального объекта вроде этого: {... chat, last_message: message}