0
我想列出的AngularFire2应用用户的对话,这strucutre如下:AngularFire2 - 加入会员和用户
聊天
"chat1": {
title: "First chat",
lastMessage: "Hello world",
members: {
"user1": true,
"user2": true,
}
}
用户
"user1": {
name: "Ben",
surname: "Bennsay"
}
"user2": {...}
我想以一种方式映射和列出聊天记录,我可以轻松地在最后一条消息的下面显示聊天参与者名称。
问题1:这个例子与官方的建议略有不同,但我觉得它仍然是有效的和可扩展的。我对吗 ?
问题2:如何真正加入成员和用户在我的聊天列表中有一个users
数组?
这是我到目前为止。
// retrieve chats "user1" participates in
this.afChatsRef = this.af.database.list(this.datastore(), {
query: {
orderByChild: "/members/user1", // by user id in members
equalTo: true,
}
}).map(chats => {
chats.map(chat => {
// HMMM? WHAT TO DO HERE ?
});
return chats;
});
谢谢,提前。
更新我也试过以下,这似乎不太正确(我不能访问用户属性)。
this.af.database.list(this.datastore()).map(chats => {
chats.map(chat => {
// chat.users = [];
for (var key in chat.members) {
this.af.database.object("https://stackoverflow.com/users/" + key).subscribe(user => {
chat.members[key] = user;
});
}
return chat;
});
console.log(chats);
return chats;
});