Лучший способ обновить список на основе даты из коллекции пожарного магазина - PullRequest
0 голосов
/ 03 мая 2020

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

    List<Object> _objectDetailsfromSnapshot(QuerySnapshot snapshot) {
        return snapshot.documents.map((doc) {
          return Object(
            date: doc.data['date'] ?? Timestamp.now(),
            name: doc.data['name'] ?? ''
          );
        }).toList();
      }
Stream<List<Object>> get objList {
    return collection.snapshots().map(_objectDetailsfromSnapshot);
  }

И затем я использую условие where для получения предметы на сегодня. Используя это, я заполняю список. Проблема заключается в том, что, когда текущая дата меняется со вчерашнего дня на сегодняшний день, в моем списке все еще отображаются элементы вчерашнего дня. Я хочу, чтобы просмотр списка автоматически показывал сегодняшние предметы. Какой способ я могу принять для достижения этой цели. Пожалуйста, помогите.

1 Ответ

0 голосов
/ 03 мая 2020

Поскольку это поток, он должен автоматически меняться, если вы обновляете дату или публикуете что-то новое. Проверьте формат даты правильно. Для сохранения даты в Firestore используйте

'date' : FieldValue.serverTimestamp(),

И поток будет

Firestore.instance.collection('objects').orderBy('date', descending: true).snapshots(),

Тогда в вашем StreamBuilder

return Container(
ListView(
children: snapshot.data.documents.map((doc) => 
_objectList(doc)).toList(),
),
),
Widget _objectList(DocumentSnapshot doc){
return ListTile(
title: Text(documentSnapshot.data['name']),
subtitle: Text(documentSnapshot.data['name']),
);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...