我想知道使用Firebase后端在IOS中使用日期的最佳方式是什么。
在我的应用程序中,我有事件,用户可以在特定日期时间之前发布数据。如何防止用户修改他的系统日期,以便能够对事件进行更改,而这是不可能的? 我们通常如何在iOS中阻止这些情况? 我现在可以使用Firebase的时间戳了,但每次需要使用日期时请求时间戳有点烦人。
感谢您的帮助,
亨利
答案 0 :(得分:3)
如果您的客户端时间戳不够/安全的用例,您可以始终使用Firebase的服务器端时间戳机制。
Firebase服务器提供了一种机制,可以将服务器上生成的时间戳作为数据插入。此功能与onDisconnect结合使用,可以轻松可靠地记录客户端断开连接的时间:
var userLastOnlineRef = Firebase(url:"https://<YOUR-FIREBASE-APP>.firebaseio.com/users/joe/lastOnline")
userLastOnlineRef.onDisconnectSetValue([".sv": "timestamp"])
您还可以使用now
variable in your security rules,以确保时间戳字段与now
相同(或至少不在NaN
之后。
答案 1 :(得分:0)
如果你太依赖客户端的时钟并且无法通过服务器检查它们,那么你可以实现一个consensus protocol,允许其他客户端在被接受之前验证时间戳/帖子。