Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Flatter和Firebase中添加时钟输入和时钟输出功能?_Firebase_Flutter_Datetime_Google Cloud Firestore - Fatal编程技术网

如何在Flatter和Firebase中添加时钟输入和时钟输出功能?

如何在Flatter和Firebase中添加时钟输入和时钟输出功能?,firebase,flutter,datetime,google-cloud-firestore,Firebase,Flutter,Datetime,Google Cloud Firestore,我正在尝试构建一个应用程序,该应用程序具有允许员工使用flifter和Firebase打卡/打卡的功能。由于我是一个初学者,我不知道如何继续,因此我需要你在逻辑部分的帮助 我如何在颤振应用程序中添加此功能,以便用户每次单击“时钟输入”按钮时,都能及时保存时钟,反之亦然 稍后,我计划使用listview.builder显示时间,并计算当天工作的总小时数 我已经尝试建立自己的,但我认为我的逻辑有一些问题 我的Firebase系列是这样的 hours > userid > time

我正在尝试构建一个应用程序,该应用程序具有允许员工使用flifter和Firebase打卡/打卡的功能。由于我是一个初学者,我不知道如何继续,因此我需要你在逻辑部分的帮助

我如何在颤振应用程序中添加此功能,以便用户每次单击“时钟输入”按钮时,都能及时保存时钟,反之亦然

稍后,我计划使用
listview.builder
显示时间,并计算当天工作的总小时数

我已经尝试建立自己的,但我认为我的逻辑有一些问题

我的Firebase系列是这样的

    hours > userid > time > 2021-03-04 > timein: 1614842992920 timeout: 1614842992920
                            2021-03-05 > timein: 1614842992920 timeout: 1614842992920
                            2021-03-06 > timein: 1614842992920 timeout: 1614842992920
现在,当我尝试获取时间时,我必须使用文档id(即2021-03-04)来确定时间

    hoursCollection.doc(employeeId).collection('time').doc(2021-03-04).get();
是的,如果我使用
limit(7)
,它会给我前七个文档,但为了显示最近几天,我想按降序获取文档

我想从下至上获取文档,即从
2021-03-06

如果您有更好的解决方案,请告诉我,我很高兴更改整个代码库。

我建议重新构造您的数据模型,以便更轻松地访问您要显示的数据。一个小的改变将使您的应用程序更具可伸缩性。例如,此结构提供特定日期的列表,以便您可以根据
userid
进行筛选。看看这个,了解一些想法

{
“小时”:{
“Gycybhfyrghdiksiezeh”:{
"2021-03-04":[
{
“timein”:“1614842992920”,
“超时”:“1614842992920”,
“userid”:“JHYRHD”
},
{
“timein”:“1614845792920”,
“超时”:“1614842992920”,
“用户ID”:“JHYHYGD”
},
]
},
“HyhHgudhKDSKSY7p7mYfW”:{
"2021-03-05":[
{
“timein”:“1614842992920”,
“超时”:“1614842992920”,
“userid”:“JHYGHD”
}
]
}
}
}

尝试使用Firestore的order by方法,如以下帖子:。你只需要把方向改成下降。非常感谢。谢谢。