ServerValue.timestamp() 返回 [AnyHashable : Any] 。如何将其转换为 Double ,以便我可以创建带有时间戳的日期。
Best Answer-推荐答案 strong>
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/
|