Функция сортировки не работает в базе данных .onSnapshot для приложения чата - PullRequest
0 голосов
/ 18 октября 2019

Фактический список, в котором я сортирую по 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);

        });

Поэтому, если вы отправляете сообщение и возвращаетесь к главному экрану сообщений, он должен сортировать сообщения попоследнее отправленное сообщение ... оно игнорирует сортировку все вместе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...