Firebase服务器时间戳加倍iOS

时间:2017-06-13 16:30:57

标签: ios firebase firebase-realtime-database

ServerValue.timestamp()返回[AnyHashable : Any]。如何将其转换为Double,以便我可以使用时间戳创建日期。

1 个答案:

答案 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)
}

希望有所帮助 - 如果需要更多信息,请发表评论。