ServerValue.timestamp()
返回 [AnyHashable : Any]
。如何将其转换为 Double
,以便我可以创建带有时间戳的日期。
最佳答案
Firebase 时间戳并不是这样工作的。
它实际上做的是将时间戳写入节点,但您只有在写入之后才能访问它。
要访问它,请将观察者附加到该节点,以便在写入时间戳时,它将在快照中返回。
所以首先我们定义一个变量
let kFirebaseServerValueTimestamp = [".sv":"timestamp"]
然后将观察者附加到节点,以便在写入时间戳时通知我们事件
func attachObserver() {
let timestampRef = self.ref.child("timestamp")
timestampRef.observe(.value, with: { snapshot in
if snapshot.exists() {
let ts = snapshot.value as! //Int? Double? String?
print(ts)
}
})
}
以及写出时间戳的函数,导致上面的观察者接收到事件
func doTimestamp() {
let timestampRef = self.ref.child("timestamp")
timestampRef.setValue(kFirebaseServerValueTimestamp)
}
希望对您有所帮助 - 如果需要更多信息,请发表评论。
关于ios - Firebase 服务器时间戳加倍 iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44527008/