无法从 iOS 中的 firebase 获取时间戳?
Posted
技术标签:
【中文标题】无法从 iOS 中的 firebase 获取时间戳?【英文标题】:Unable to get timestamp from firebase in iOS? 【发布时间】:2017-12-01 10:21:33 【问题描述】:我想从 Firebase 获取当前的 UTC 时间戳。我从设备获取 UTC 时间戳,但我更改了这种方法,以便用户不使用电话时间并使用无法更改的 Firebase 时间。
我使用了下面的代码,但它没有返回时间戳。
print("server value \(FIRServerValue.timestamp())")
它给了我[AnyHashable(".sv"): timestamp]
的价值
我也试过了
let objectToSave = ["date": [".sv": "timestamp"]]
print("timestamp \(objectToSave)")
现在我有两个问题:
使用 Firebase 时间以使用户无法更改是否是一种好方法 设备时间? 如何获取时间戳的值?【问题讨论】:
这就是你想要的***.com/questions/29243060/… 【参考方案1】:所以,我将把答案分成两部分来匹配你的两个问题:
• 这是一个好方法吗?
这取决于您的应用程序做什么以及您希望它如何工作。例如,对于您可能具有玩家应该等待一小时才能再次玩游戏的功能的游戏,它实际上是通过转发其设备的时钟来击败用户“作弊”的唯一解决方案。但是,如果您的应用程序是消息应用程序或其他任何东西,您可以有两种方法:(1)您不关心什么是实时,因为您的代码可以对任何情况做出反应(未来的日期或类似的东西) , (2) 你认为它会让你的应用运行更流畅,因为你首先防止了边缘情况的发生,在这种情况下,你应该得到实时。
您可以考虑的另一个例子是 Apple 自己的应用程序。我在 MacBook 的内部时间上玩了很多,用 Xcode 和 ios 模拟器测试我自己的应用程序在未来或过去的事件。我意识到 Xcode 甚至 Finder 都是基于 Mac 告诉他们的时间。所以我最终得到了两个月内创建的文件和 Xcode 日志。
• 如何获取时间戳值?
您似乎没有正确访问 FIRServerValue.timeStamp()。 Firebase 文档说它会这样返回:class func timestamp() -> [AnyHashable : Any]
。要操纵您从 Firebase 获得的结果,我建议您查看这两个非常相似的帖子,它们更详细地处理了这个问题:
Trying to convert Firebase timestamp to NSDate in Swift
Swift 4: Firebase Timestamp
【讨论】:
以上是关于无法从 iOS 中的 firebase 获取时间戳?的主要内容,如果未能解决你的问题,请参考以下文章