我的代码显示了收集的所有记录,如何获取今天的时间戳记录,我从google搜索示例,但我不知道我的代码在哪里使用“ where”条件。
Widget _buildBody(BuildContext context) {
return StreamBuilder<QuerySnapshot>(
stream: Firestore.instance.collection('baby').snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData) return LinearProgressIndicator();
return _buildList(context, snapshot.data.documents);
},
);
}
Widget _buildList(BuildContext context, List<DocumentSnapshot> snapshot) {
return Container(
margin: EdgeInsets.only(top: 200),
child:ListView(
children: snapshot.map((data) => listSection(context, data)).toList(),
)
);
}
答案 0 :(得分:3)
where(Common.DATE_TIME,
isGreaterThanOrEqualTo: DateTime(date.year, date.month, date.day))
这对我来说太棒了...
答案 1 :(得分:0)
就目前而言,我不知道是否可以使用firestore API来做到这一点。但这可能是暂时的解决方法
const oneDay = 60 * 60 * 24 * 1000;
List filteredList = List();
Widget _buildBody(BuildContext context) {
return StreamBuilder<QuerySnapshot>(
stream: Firestore.instance.collection('baby')
.snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData) return LinearProgressIndicator();
return _buildList(context, snapshot.data.documents);
},
);
}
Widget _buildList(BuildContext context, List<DocumentSnapshot> snapshot){
snapshot.forEach((snap){
if((DateTime.now()
.difference(DateTime.parse(snap.data['timestamp']
.toDate().toString())))
.inMilliseconds <= oneDay){
filteredList.add(snap);
}
});
return Container(
margin: EdgeInsets.only(top: 200),
child:ListView(
children: filteredList.map((data) => listSection(context, data)).toList(),
)
);
}
答案 2 :(得分:0)
您可以使用客户端库cloud_firestore/cloud_firestore.dart,它是用于Firestore的Dart客户端库。
使用它您可以获取如下数据:
var today = new DateTime.now();
today = new DateTime(today.year, today.month, today.day);
var data = Firestore.instance.collection('talks')
.where("topic", isGreaterThan: today)
.snapshots()
此后,您可以照常使用数据来形成小部件
here,您可以在客户端库中看到where语法。