【发布时间】:2021-12-11 13:39:42
【问题描述】:
出于某种我不明白的原因,此代码将“temps”的值分配给 this.messages,任何帮助将不胜感激。我知道问题出在下面的代码块中,因为删除 .sort 部分会更改 this.messages 的输出顺序。
this.currentMessageSubject.subscribe(()=> {
console.log('Refreshing messages')
if (this.conversationId) {
firebase.firestore().collectionGroup('conv').where("parentMessageId", "==", this.conversationId).get().then(async (querySnapshot) => {
let temps: FirebaseMessages;
let tempsMsgs = new Map();
temps = this.messages;
temps.messages = []
querySnapshot.forEach((newConvo) => {
const thing = { id: newConvo.id, ...newConvo.data() } as FirebaseMessage;
if (!tempsMsgs.has(thing.id)) {
tempsMsgs.set(thing.id, thing)
temps.messages.push(thing);
}
})
temps.messages.sort(function(a,b){
return a.timestamp.seconds - b.timestamp.seconds;
});
temps.messages = temps.messages.filter((message) => {
if (message.id) {
return true;
}
return false;
})
})
}
})
【问题讨论】:
-
以下答案是否解决了问题,或者您还需要帮助找出问题所在吗?
标签: javascript angular typescript ionic-framework