我正在尝试从Firestore添加时间戳以填充日历。日历是这个plugin
Future<void> getCalendarEventList() async {
await Firestore.instance.collection('availableDates').snapshots().listen(
(data) => data.documents.forEach((doc) => _markedDateMap.add(
new DateTime(doc['availableDates']),
new Event(
date:DateTime(doc['availableDates']),
title: 'hello',
icon: _eventIcon))));
setState(() {});
}
@override
void initState() {
getCalendarEventList();
super.initState();
}
我让它处于一个阶段,但是由于某种原因,它不再填充日历了。回忆起来,只有一些日期填充了日历。我删除了有效的!(已填充)。无论如何,我可能正在吠错树。这是我的后端和地图的图片:
使用给定的日期初始化地图_markedDateMap
将填充日历:
DateTime(2019, 5, 24)
我注意到DateTime对象还有5个参数,它可以使用..即包括微秒的时间。这些都设置为零。但是,如果我更改其中一个字段,则日期不会填充日历。所以我认为我的问题出在firestore中时间戳的时间部分(即不是日期)。例如,这DateTime(2019, 5, 24,0,0,0,0,0)
有效,但DateTime(2019, 5, 24,12,0,0,0,0)
无效,我想我的问题可以概括为:如何在Firestore中将DateTime(2019, 5, 24,0,0,0,0,0)
表示为时间戳
EventList<Event> _markedDateMap = new EventList<Event>(events: {
new DateTime(2019, 5, 24): [
new Event(
date: new DateTime(2019, 1, 24),
title:'hi',
icon: _eventIcon,
)
]
});