我有一个Flutter应用程序,用户可以预测足球比赛的结果。问题是,如果用户更改了手机上的时间,即使比赛已经结束,他们仍然可以预测。我如何防止这种情况,使其独立于每个用户手机上的时间?谢谢
nc1teljy1#
解决方案是不从本地设备获取日期,而是从其提供的firebase timestamp获取日期,例如,如果我们说您希望在从现在到明天的同一时间执行此操作,您可以使用以下命令将其保存到数据库:
timestamp
Timestamp(Timestamp.now().millisecondsSinceEpoch , 24*60*60*1000)
在您的示例中,需要将我们在数据库中设置的Timestamp与以下值进行比较:
Timestamp
FieldValue.serverTimestamp()
此外,您可以使用以下代码从Timestamp获取DateTime:
final firestoreTimestamp = /* the Timestamp object */; firestoreTimestamp.toDate();
ars1skjm2#
最安全和最推荐的方法是使用数据库规则。
2条答案
按热度按时间nc1teljy1#
解决方案是不从本地设备获取日期,而是从其提供的firebase
timestamp
获取日期,例如,如果我们说您希望在从现在到明天的同一时间执行此操作,您可以使用以下命令将其保存到数据库:在您的示例中,需要将我们在数据库中设置的
Timestamp
与以下值进行比较:此外,您可以使用以下代码从
Timestamp
获取DateTime:ars1skjm2#
最安全和最推荐的方法是使用数据库规则。