【发布时间】:2018-12-22 14:50:07
【问题描述】:
我在 firestore 下有一个数据库,其结构如下:
-> 聊天室 -> 用户
我有一个包含“用户”集合的“聊天室”集合。在 users 集合中,每个文档都包含“read: true/false”字段,以便了解用户是否已阅读房间中的消息。
要检索当前用户的房间,我使用以下代码:
getRoomFromUserId(userId: string) {
let rooms$: Observable<any>;
let rooms: AngularFirestoreCollection<any>;
rooms = this.afs.collection('ChatRoom', ref => {
return ref.where('Chatter.' + userId, '==', true);
});
rooms$ = rooms.snapshotChanges().map(changes => {
return changes.map(a => {
const data = a.payload.doc.data();
const id = a.payload.doc.id;
return {id, ...data};
});
});
return rooms$;
}
为了从“用户”子集合中恢复数据,我使用这行代码:
this.afs.collection('ChatRoom').doc(RoomID).collection('Users').doc(UserId);
我想检索一个包含房间数据和每个房间的“读取:真/假”的对象,我认为可以使用 observables,但我不知道该怎么做。您对解决方案有什么想法吗?
【问题讨论】:
标签: angular typescript google-cloud-firestore