ServerValue.timestamp()
返回[AnyHashable : Any]
。如何将其转换为Double
,以便我可以使用时间戳创建日期。
答案 0 :(得分:0)
这与Firebase时间戳的工作原理并不完全相同。
它实际上做的是将时间戳写入节点,但在写入之前您无法访问它。
要访问它,请将观察者附加到该节点,以便在写入时间戳时,它将在快照中返回。
首先我们定义一个var
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)
}
希望有所帮助 - 如果需要更多信息,请发表评论。