我有一个Flutter应用程序,用户可以在其中预测足球比赛的结果。问题是,如果用户改变了手机上的时间,即使时间已经结束,他们仍然可以预测。如何防止这种情况发生,使其与每个用户手机上的时间无关?谢谢你
解决方案是不从本地设备获取日期,而是从它提供的firebasetimestamp
获取日期,例如,如果我们说您想从现在到明天同时做这件事,您可以将其保存到您的DB,使用:
Timestamp(Timestamp.now().millisecondsSinceEpoch , 24*60*60*1000)
在您的情况下,您需要比较我们在数据库中设置的Timestamp
与:
FieldValue.serverTimestamp()
也,您可以从Timestamp
获取DateTime:
final firestoreTimestamp = /* the Timestamp object */;
firestoreTimestamp.toDate();
最安全且最推荐的方法是使用数据库规则。耐心学习https://fireship.io/snippets/firestore-rules-recipes