【问题标题】:How to add a clock-in and clock-out feature in Flutter and Firebase?如何在 Flutter 和 Firebase 中添加打卡和打卡功能?
【发布时间】:2021-06-02 20:44:41
【问题描述】:

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

如何在 Flutter 应用中添加此功能,以便每当用户点击打卡按钮时,它都会节省打卡时间,反之亦然?

然后,我打算使用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。 如果您有更好的解决方案,请告诉我,我很乐意更改整个代码库。

【问题讨论】:

标签: firebase flutter datetime google-cloud-firestore


【解决方案1】:

我建议重组您的数据模型,以便更轻松地访问您想要呈现的数据。一个小的改变将使您的应用程序更具可扩展性。例如,此结构提供特定日期的列表,因此您可以过滤 userid。看看这个article 以获得一些想法。

{
    "hour":{
      "GyCyBHFYRGJHDIKSIEZEH":{
        "2021-03-04":[
          {
            "timein":"1614842992920",
            "timeout":"1614842992920",
            "userid": "JHYRHD"
          },
          {
            "timein":"1614845792920",
            "timeout":"1614842992920",
            "userid": "JHYHYGD"
          },
        ]
      },
      "HyhHgudhKDSKSY7p7mYfW":{
        "2021-03-05":[
          {
            "timein":"1614842992920",
            "timeout":"1614842992920",
            "userid": "JHYGHD"
          }
        ]
      }
    }
  }

【讨论】:

  • 非常感谢。赞赏。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-08
  • 2020-10-22
  • 2018-07-18
  • 2021-11-28
相关资源
最近更新 更多