Сообщения чата упорядочиваются неправильно

Я использую Firestore и Flutter для чата. Он работает нормально, но я вижу эту проблему. Иногда сообщения отображаются не по порядку. Например, обычно они отсортированы внизу как самые свежие. Но я тестирую на симуляторе iOS и Android и иногда вижу, что сообщения отображаются не по порядку. Например, я отправляю сообщения на iOS и все в порядке (по порядку). Затем я отправляю на другой симулятор (например, Android), и сообщения отображаются вверху, а затем начинаю спускаться (поверх сообщений, отправленных на iOS).

Вот мой код:

            child: new FirestoreAnimatedList(
              query: reference
                  .orderBy('timestamp', descending: true)
                  .snapshots(),
              padding: new EdgeInsets.all(8.0),
              reverse: true,
              itemBuilder: (_, DocumentSnapshot snapshot,
                  Animation<double> animation, int x) {
                return new Chat(
                    snapshot: snapshot, animation: animation);
              },
            ),

'timestamp': DateTime.now(),

Я пробовал эту, но ту же проблему:

'timestamp': DateTime.now().millisecondsSinceEpoch.toString()

Я неделями жду ответа, но не нахожу. Кто-нибудь может помочь?

Интеграция Angular - Firebase Analytics
Интеграция Angular - Firebase Analytics
Узнайте, как настроить Firebase Analytics и отслеживать поведение пользователей в вашем приложении Angular.
2
0
1 844
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вероятно, вы столкнулись с этой проблемой, потому что устройства сообщают разное время.

Чтобы решить эту проблему, используйте время сервера вместо местного. Это делается путем установки поля timestamp на FieldValue.serverTimestamp().

Документация.

Спасибо за ответ! Я пытаюсь сейчас

FlutterFirebase 01.12.2018 14:11

@FlutterFirebase Удачи?

Jake Lee 01.12.2018 19:47

@FlutterFirebase Нет проблем! Обязательно отметьте свой вопрос как ответ, если он есть :)

Jake Lee 03.12.2018 13:15

Я также столкнулся с этой проблемой сортировки, попробовал ваш ответ, но не повезло, пожалуйста, помогите

Huzaifa Ahmed 06.06.2020 21:56

Другие вопросы по теме