【发布时间】:2016-03-03 15:14:34
【问题描述】:
我想知道在 IOS 中使用 Firebase 后端处理日期的最佳方式是什么。
在我的应用程序中,我有事件,并且允许用户在特定日期时间之前发布数据。如何防止用户修改他的系统日期以便能够在不可能的情况下更改事件? 我们通常如何在 iOS 中预防这些情况? 我现在可以使用 Firebase 中的时间戳,但是每次需要使用日期时都请求时间戳有点烦人..
感谢您的帮助,
亨利
【问题讨论】:
我想知道在 IOS 中使用 Firebase 后端处理日期的最佳方式是什么。
在我的应用程序中,我有事件,并且允许用户在特定日期时间之前发布数据。如何防止用户修改他的系统日期以便能够在不可能的情况下更改事件? 我们通常如何在 iOS 中预防这些情况? 我现在可以使用 Firebase 中的时间戳,但是每次需要使用日期时都请求时间戳有点烦人..
感谢您的帮助,
亨利
【问题讨论】:
如果您有一个客户端时间戳不够好/不够安全的用例,您可以随时使用 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 相同(或至少不在其后)。
【讨论】:
ref.childByAppendingPath("users/joe/updatedAt").setValue("timestamp") ?
如果您只依赖客户端的时钟并且无法通过服务器检查它们,您可以实现consensus protocol,允许其他客户端在时间戳/帖子被接受之前对其进行验证。
【讨论】: