gpt4 book ai didi

firebase - 从 Firestore 返回时间戳类型并与 Flutter 中的 DateTime.now() 进行比较

转载 作者:IT王子 更新时间:2023-10-29 07:23:55 24 4
gpt4 key购买 nike

**编辑 ---------->

附加信息。有可能我做错了。我正在努力实现下图。是一个无限滚动的“日历”,显示相应日期的提要。我开始认为这不是选项卡 View 问题,需要以其他方式完成。

enter image description here

-------------------->

我正在创建一个在 Flutter 中创建 StreamBuilder 的应用程序,它依赖于比较日期来返回 Firestore 数据。

我已经创建了一组可能的日期选项卡值。当用户选择该选项卡时,我只需要比较日期 - 没有时间戳,并显示具有本地时间匹配日期字段的游戏流。

我有多个选项卡和一个不断变化的 View ,因此选项卡与小部件的比例不是 1:1,但选项卡需要通过返回单击索引处的日期值并将其设置为 stateDate 来控制小部件的状态.

此外,启动在今天日期的选项卡上选择的用户也很棒。

var datesList = [];
var _stateDate = DateTime.now();

initState(){
for (int i = -14; i < 57; i++) {
DateTime date = _stateDate;
date = date.add(Duration(days: i));
datesList.add(date);
}
}

-------------------------------------------- ------>

@override
Widget build(BuildContext context) {
return DefaultTabController(
length: dateList.length,
child: Scaffold(
appBar: AppBar(
bottom: const PreferredSize(
preferredSize: Size.zero,
child: TabBar(
tabs: <Widget>[
_buildTabs(),
],
isScrollable: true,
),
),
),
body: TabBarView(
children: <Widget>[
_buildSchedule()
],
),
),
);
}


@override
Widget _buildSchedule() {
return Container(
child: Center(
child: StreamBuilder<QuerySnapshot>(
stream: Firestore.instance
.collection('schedule')
.where('time', isEqualTo: _stateDate)
.orderBy('date')
.snapshots(),
builder:
(BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (!snapshot.hasData) {
return const Text('Loading...');
}

return ListView.builder(
itemCount: snapshot.data.documents.length,
itemBuilder: (BuildContext context, int index) =>
_buildScheduleItem(context, snapshot.data.documents[index]),
);
}),
),
);
}

enter image description here

任何帮助都会很棒。也许我只是想错了。

最佳答案

DateTime _now = DateTime.now();
DateTime _start = DateTime(_now.year, _now.month, _now.day, 0, 0);
DateTime _end = DateTime(_now.year, _now.month, _now.day, 23, 59, 59);


stream: Firestore.instance
.collection('schedule')
.where('date', isGreaterThanOrEqualTo: _start)
.where('date', isLessThanOrEqualTo: _end)
.orderBy('date')
.snapshots(),

关于firebase - 从 Firestore 返回时间戳类型并与 Flutter 中的 DateTime.now() 进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54014679/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com