【问题标题】:Working with dates - iOS - Firebase使用日期 - iOS - Firebase
【发布时间】:2016-03-03 15:14:34
【问题描述】:

我想知道在 IOS 中使用 Firebase 后端处理日期的最佳方式是什么。

在我的应用程序中,我有事件,并且允许用户在特定日期时间之前发布数据。如何防止用户修改他的系统日期以便能够在不可能的情况下更改事件? 我们通常如何在 iOS 中预防这些情况? 我现在可以使用 Firebase 中的时间戳,但是每次需要使用日期时都请求时间戳有点烦人..

感谢您的帮助,

亨利

【问题讨论】:

    标签: ios swift date firebase


    【解决方案1】:

    如果您有一个客户端时间戳不够好/不够安全的用例,您可以随时使用 Firebase 的服务器端时间戳机制。

    来自documentation

    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") ?
    【解决方案2】:

    如果您只依赖客户端的时钟并且无法通过服务器检查它们,您可以实现consensus protocol,允许其他客户端在时间戳/帖子被接受之前对其进行验证。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-06
      • 1970-01-01
      • 1970-01-01
      • 2017-02-05
      • 2017-03-05
      • 2019-10-20
      • 2023-04-01
      • 1970-01-01
      相关资源
      最近更新 更多