Фактический список, в котором я сортирую по yDS1a41FxzZlTjVvzxjteKSHSn22:
yDS1a41FxzZlTjVvzxjteKSHSn22: 1571361291153
id: "t4ImLnwtFU5e7VKcCmm4"
photoUrl: "https://firebasestorage.googleapis.*"
startDate: "2019-10-17"
unread: []
userId: "FxttC8c66QXMElHIkBFApVVGevy1"
У меня есть приложение чата, которое использует Cloud Firestore в качестве бэкэнда. Я использую динамическое свойство в приложении чата, поэтому я не могу сделать заказ в своем запросе Firestore, я должен сделать это, как только я извлекаю данные из Firestore и сохраняю их в массиве. Проблема заключается в том, что при сохранении данных в массиве сортировка происходит не по времени.
qry
.onSnapshot((val) => {
val.forEach(snp => {
if (snap.data().likes.includes(snp.id)) {
this.users.push({
id: snp.id,
userId: snp.data().userId,
unread: snap.data().unread,
[this.loggedInUser.uid]: snp.data()[this.loggedInUser.uid],
});
console.log('log', this.users);
}
// remove any unique items
this.users = Array.from(new Set(this.users.map(a => a.id)))
.map(id => {
return this.users.find(a => a.id === id);
});
});
this.getPhotoUrl();
this.checkIfUnread();
let test = this.users.sort((a, b) => (a[this.loggedInUser.uid] < b[this.loggedInUser.uid]) ? 1 : -1);
});
Поэтому, если вы отправляете сообщение и возвращаетесь к главному экрану сообщений, он должен сортировать сообщения попоследнее отправленное сообщение ... оно игнорирует сортировку все вместе.