如何在Flutter中按日期对从Firestore到地图的数据进行排序

时间:2019-06-20 08:06:35

标签: firebase object flutter google-cloud-firestore

我正在尝试将Firestore中的事件列表排序到地图中。 像这样

Map<DateTime, List> _events;
_events = {
DateTime.parse('2019-06-30'): ['Event 1', 'Event 2'],
DateTime.parse('2019-06-20'): ['Event 3', 'Event 4'],
}

我将Firestore数据文档作为事件 里面有情人

name: 'Event 1'
date: '2019-06-20'

name: 'Event 2'
date: '2019-06-30'

name: 'Event 3'
date: '2019-06-20'

name: 'Event 4'
date: '2019-06-20'

每个文档都不同

我如何使用Firebase来实现这些目标

    QuerySnapshot querySnapshot = await Firestore.instance
        .collection('${_username.toLowerCase()}-orders')
        .orderBy('date', descending: true)
        .getDocuments();
    var damap = querySnapshot.documents;
    print('damap $damap');

我想将此damap变量数据转换为_events格式,如上所示

1 个答案:

答案 0 :(得分:2)

由于您以YYYY-MM-DD格式存储日期,因此可以按字典顺序对这些字符串进行降序或升序排序,然后可以使用orderBy方法,如下所示:

Firestore.instance
          .collection('${_username.toLowerCase()}-orders')
          .orderBy('date', descending: true)
          .snapshots()
          .listen((data) {...})