ios - Firebase 服务器时间戳加倍 iOS

标签 ios firebase firebase-realtime-database

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/

相关文章:

ios - 如何从 xcode 4.2 中的 nsstring 或 byte 获取 JSON 数组数据?

ios - 如果 CoreMotion 的更新处理程序完成速度不够快怎么办?

Firebase 应用程序分发 - iOS - 会计

ios - 如何从 TableView 中删除 Firebase 中的节点

java - 从另一个类中获取值(value)

android - 如何使用安全规则防止用户删除Firebase数据库中某个路径下的所有数据?

ios - 通过点击 iOS 中的红色减号图标删除 tableview 单元格

javascript - Firebase 存储下载到用户计算机

firebase - 如何更改 Firebase 实时数据库位置?

ios - 如何在RubyMotion中使用NSDecimalNumber类方法?