【发布时间】:2021-08-20 23:32:39
【问题描述】:
我正在制作一个应用程序来保存和显示患者的癫痫发作历史。由于我是 Flutter 的新手,因此在从日历中选择日期时如何从当前用户的 firebase 检索数据时遇到困难。
我将数据存储在实时数据库中,为此,我将日期用作孩子,如果发生超过 1 次癫痫发作,那么它将使用新密钥将数据存储在同一日期下.我想获取该日期的数据,因为它存储在 firebase 中,如下所示:
我正在使用此代码获取所选日期的数据。默认情况下,日历上选择的日期是当前日期。由于此代码正确地从数据库中获取数据,但如果日期在 firebase 中没有数据,则不会显示其他条件。
更新代码:
初始化状态:
@override
void initState() {
var dateTime = DateTime.now();
_date = "${dateTime.day}-${dateTime.month}-${dateTime.year}";
//call the load method
loadData();
setState(() {
_controller = CalendarController();
});
}
加载数据:
loadData() {
list.clear();
print(_date);
//load the data from firebase and add to the list
fb.reference()
..child(cuser.uid)
.child('Seizure_history')
.child(_date)
.once()
.then((DataSnapshot snapshot) {
var data = snapshot.value;
data.forEach((key, value) {
EventList seizure_history = new EventList(
seiz_duration: value['duration'],
dateTime: value['datetime'],
key: key,
);
list.add(seizure_history);
});
setState(() {
print("History Present");
});
});
}
日历:
onDaySelected: (date, events, _) {
//print(TimeOfDay.fromDateTime(date));
print(date);
print(_focusedDay);
var datesel = "${date.day}-${date.month}-${date.year}";
//set the date
setState(() {
_date = datesel.toString();
//call the method again
loadData();
});
},
无论我选择哪个日期,它都会在每个日期为我提供相同的癫痫发作历史记录,我认为问题出在我的日期,但我无法弄清楚如何将其设为全局以便在从日历中选择时更改它
这是它在每个日期显示的内容:
由于 DB 只有 2-6-2021 的数据,但它在每个日期都显示相同的数据。但是,如果日期在 Firebase DB 中没有数据,它应该显示这个:(下图是 UI 设计)
【问题讨论】:
标签: firebase flutter dart firebase-realtime-database