我使用离子3以具有这些功能的聊天/消息的形式从firebase获取数据
getChats(userTwoId: string) {
return this.auth.getAuthenticatedUser()
.map(auth => auth.uid)
.mergeMap(uid => this.database.list(`/user-messages/${uid}/${userTwoId}`))
.mergeMap(chats => {
return Observable.forkJoin(
chats.map(chat =>
this.database.object(`/messages/${chat.$key}`).first()),
( ...vals: Message[]) => {
// console.log(vals);
return vals;
}
)
})
}
getLastMessagesForUser(): Observable<Message[]> {
return this.auth.getAuthenticatedUser()
.map(auth => auth.uid)
.mergeMap(authId => this.database.list(`/last-messages/${authId}`))
.mergeMap(messageIds => {
return Observable.forkJoin(
messageIds.map(message => {
return this.database.object(`/messages/${message.key}`)
.first()
}),
(...values) => {
return values;
}
)
})
}
如何使用函数删除这些聊天和lastmessages? 请有人帮帮我
答案 0 :(得分:1)
你需要从有问题的firebase对象中获取密钥,通常这是.$key
值,一旦你有了,你可以使用.remove()
功能,假设你正在使用离子3 w / angularfire2
例如:
this.db.object('messages/' + chatKey).remove();
在这个例子中,我们假设在我的firebase中,我的节点是消息,它有一个子节点,键是chatKey
。您需要事先定义chatKey
或将 chatKey
替换为您自己的.$key