我已将数据保存在 Firestore 数据库中为
DateTime.now().millisecondsSinceEpoch;
我希望用户仅使用
datePicker
按日期搜索。
是否可以这样做,或者我是否必须更改数据库中的数据类型? 如果可以的话我该怎么做?
如果您将时间戳存储为自纪元以来的毫秒数,则可以使用
>=
和 <
运算符过滤特定日期或日期范围。
一个简单的例子:
var now = DateTime.now();
var start = DateTime(now.year, now.month, now.day);
var end = start.add(Duration(days: 1));
print(now.millisecondsSinceEpoch);
print(start.millisecondsSinceEpoch);
print(end.millisecondsSinceEpoch);
这里重要的变量:
now
是代码运行时的DateTime
start
是一天开始的 DateTime
end
是第二天开始时的DateTime
因此,如果您想将 Firestore 中的字段与这些值进行比较,则类似于:
collectionRef
.where("timestampField", isGreaterThanOrEqualTo: start)
.where("timestampField", isLessThan: end)
...