请我有一个历史页面上我的flutter应用程序,我想工作,我一直在想一种方法来存储数据正确地在我的firestore,以便我可以达到理想的结果,如下图所示
我希望把同一天的数据存储在上图所示的同一个容器中。我面临的挑战是,我不知道如何组织我的数据以获得想要的结果。
这是我所试过的方法;
我的计数类文件如下,虽然我不确定这是否是我真的会做什么。
class Count {
String id;
final int count;
final createdOn;
Count({this.id = '', required this.count, required this.createdOn});
Map<String, dynamic> toJson() =>
{'id': id, "count": count, "createdOn": createdOn};
Count.fromSnapShot(DocumentSnapshot<Map<String, dynamic>> snapshot)
: id = snapshot.id,
count = snapshot.data()!["count"],
createdOn = snapshot.data()!["createdOn"];
}
这是我用onpressed in按钮发送数据到firestore的地方
onPressed: () async {
exerciseCounter.increment();
final counter = exerciseCounter.count;
final FirebaseAuth auth = FirebaseAuth.instance;
final User? user = await auth.currentUser;
final uid = user?.uid;
final percents = FirebaseFirestore.instance
.collection('exercise-percentage')
.doc(uid)
.collection("daily-percentage");
final percent = Count(
count: counter,
createdOn: FieldValue.serverTimestamp());
final json = percent.toJson();
await percents.add(json);
},
现在我不确定使用streambuilder从firestore获取数据并将同一天的数据连接到同一个容器中的正确方法。我知道我需要使用query方法来查询我的带有firestore服务器TimeStamp的数据,但我不知道如何使用它来获取同一天的数据并将其显示为上图所示。
如果有人能真正帮助我,我将不胜感激。它可以只是一个简单的例子,我可以遵循或更正和添加到我的代码。谢谢你的时间。
1条答案
按热度按时间bis0qfac1#
我希望将同一天的数据存储在同一个容器中,如上图所示。
除了
createdOn
字段之外,您还可以有一个额外的字段,以YYYYMMDD格式保存日期。这样,您可以轻松地: