Firebase 实时数据库每日签到 Android
Firebase Realtime Database Daily Check-in Android
现在我创建了一个项目,其中一个功能是每日签到。
有了这个,我遇到了一些困难。
案例是 - 我希望用户每天检查 in.That 意味着,在签到后,用户必须等到明天再次进行每日签到。我应该如何实现这个以及验证应该如何工作?
我已经在 google 中找到了解决方案,但无法正常工作。
我也已经使用调度程序进行了测试。
它有效,但我认为这不是我能得到的最佳实践,所以如果有人有解决方案,我很乐意听到。
不太确定这是否是最佳解决方案,但这是我的解决方法。
在您的 Users/user-id 下,添加一个名为 'lastCheckinTime' 的字段。
当用户签到时,先调用lastCheckinTime,看是否<24hrs,如果不是才让用户签到。
然后在编写新的签入操作时,用最新的时间戳更新 lastCheckinTime。希望它能回答你的问题。
我只保留用户最后一天签到的实例,不管它发生在什么时间。
这样您就可以检查在特定日期是否发生了签到。
使用 -
String currentDate = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()).format(new Date());
获取当前日期参数,然后进行如下检查 -
if(currentDate.after(lastCheckInDate)){
//your check in method here
}
现在我创建了一个项目,其中一个功能是每日签到。 有了这个,我遇到了一些困难。 案例是 - 我希望用户每天检查 in.That 意味着,在签到后,用户必须等到明天再次进行每日签到。我应该如何实现这个以及验证应该如何工作?
我已经在 google 中找到了解决方案,但无法正常工作。
我也已经使用调度程序进行了测试。 它有效,但我认为这不是我能得到的最佳实践,所以如果有人有解决方案,我很乐意听到。
不太确定这是否是最佳解决方案,但这是我的解决方法。
在您的 Users/user-id 下,添加一个名为 'lastCheckinTime' 的字段。
当用户签到时,先调用lastCheckinTime,看是否<24hrs,如果不是才让用户签到。
然后在编写新的签入操作时,用最新的时间戳更新 lastCheckinTime。希望它能回答你的问题。
我只保留用户最后一天签到的实例,不管它发生在什么时间。
这样您就可以检查在特定日期是否发生了签到。
使用 -
String currentDate = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()).format(new Date());
获取当前日期参数,然后进行如下检查 -
if(currentDate.after(lastCheckInDate)){
//your check in method here
}