dart 在flutter中使用时间戳或firebase服务器时间保存和查询firestore中的数据

9gm1akwq  于 2023-02-01  发布在  Flutter
关注(0)|答案(1)|浏览(137)

请我有一个历史页面上我的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的数据,但我不知道如何使用它来获取同一天的数据并将其显示为上图所示。
如果有人能真正帮助我,我将不胜感激。它可以只是一个简单的例子,我可以遵循或更正和添加到我的代码。谢谢你的时间。

bis0qfac

bis0qfac1#

我希望将同一天的数据存储在同一个容器中,如上图所示。
除了createdOn字段之外,您还可以有一个额外的字段,以YYYYMMDD格式保存日期。
这样,您可以轻松地:

相关问题