【发布时间】:2020-08-12 23:30:36
【问题描述】:
我在 Firestore 中有一个 chat 集合,其中包含消息。每条消息都附有一个userUid。我想要完成的是:
在
chat集合中查询每条消息的数组遍历每条消息,查询对应的用户文档 为了将用户信息附加到消息中
现在有一个
subscribe提供原始消息数组以及添加的信息(如果可能 - combineLatest?)每次添加消息时,最好只在用户集合中查询新消息
以下 sn-p 是我目前正在使用的:
const chatRef = db.collection('chat')
const messageUser$ = collectionData(chatRef, 'id')
.pipe(
switchMap(messages => {
return forkJoin(...messages.map(m => {
const userRef = db.collection('users').doc(m.userUid)
return docData(userRef)
.pipe(
map(user => ({ ...user, ...m }))
)
}))
})
)
messageUser$.subscribe(data => console.log('data', data))
我和朋友一起提出了以下两个可行的解决方案,但在为我的应用程序配置时都不起作用
【问题讨论】:
标签: javascript firebase asynchronous google-cloud-firestore rxjs