如何节省到firebase的颤振时间?
我正在开发一个颤振应用程序,在该应用程序中,我使用以下代码显示一个TimeRangepicker:我得到TimeOfDay(09:00)+TimeOfDay(12:00):如何节省到firebase的颤振时间?,firebase,flutter,dart,google-cloud-firestore,dart-pub,Firebase,Flutter,Dart,Google Cloud Firestore,Dart Pub,我正在开发一个颤振应用程序,在该应用程序中,我使用以下代码显示一个TimeRangepicker:我得到TimeOfDay(09:00)+TimeOfDay(12:00): onPressed: () async { TimeRange result = await showTimeRangePicker( use24HourFormat: false,
onPressed: () async {
TimeRange result = await showTimeRangePicker(
use24HourFormat: false,
interval: Duration(minutes: 30),
context: context,
start: TimeOfDay(hour: 9, minute: 0),
end: TimeOfDay(hour: 12, minute: 0),
disabledTime: TimeRange(
startTime: TimeOfDay(hour: 23, minute: 0),
endTime: TimeOfDay(hour: 5, minute: 0)),
disabledColor: Colors.red.withOpacity(0.5),
strokeWidth: 4,
ticks: 24,
ticksOffset: -7,
ticksLength: 15,
ticksColor: Colors.grey,
labels: [
"12 pm",
"3 am",
"6 am",
"9 am",
"12 am",
"3 pm",
"6 pm",
"9 pm"
].asMap().entries.map((e) {
return ClockLabel.fromIndex(
idx: e.key, length: 8, text: e.value);
}).toList(),
labelOffset: 35,
rotateLabels: false,
padding: 60);
print("${result.startTime} + ${result.endTime}");
},
但唯一的问题是我可以找到一种合适的方法将其保存到firebase,我不需要date我只需要TimeOfDay。Firestore中没有用于存储一天中某个时间的特定数据类型,因此您必须将其映射到现有类型之一 一些常见的映射是:
- 将一天中的时间存储为字符串值,例如“07:55:00.000”(如果您关心毫秒精度)
- 将一天中的时间存储为与午夜的偏移量,例如28500(从午夜到上午7:55的秒数)
- 将一天中的时间作为固定日期的时间部分存储在
字段中。这本质上是前一种方法的一种变体,偏移量是从。假设您选择纪元的开始(1970年1月1日)作为固定日期,则时间戳的值将为28500000(毫秒)时间戳
所有这些都有有效的用例,因此选择最适合您应用程序用例的选项。非常感谢您的宝贵回答,我决定对您的应用程序提出第三个建议,我将一天的时间转换为固定日期的时间戳,并作为时间戳值存储在firestore中,然后我从firestore检索时间戳并将其转换回TimeOfDay。再次感谢:)很高兴听到@basudevnayak