如何在 Swift 项目中使用 iOS SDK 插入 firebase 服务器时间戳

How to insert a firebase server timestamp using the iOS SDK in Swift project

"Offline Capabilities" section of the iOS guide 中提到了 kFirebaseServerValueTimestamp,这在 Swift 项目中似乎不起作用(自动完成不会提示)。

我像 Swift 示例那样尝试了 [".sv": "timestamp"]。但它抱怨说这不能用其他值设置,并且必须是给定路径的唯一值。

我试过:

ref.childByAutoId().setValue(["text": "foobar", ".sv": "timestamp"], withCompletionBlock: {...} 

它给了我“.sv”不能用其他值保存的错误。

我想做的是保存 createdAt 时间戳以及对象的其他值。而且我更愿意使用服务器时间来避免客户端时钟偏差。

我该怎么做?

".sv":"timestamp" 添加到 Firebase 条目时,请在括号 [ ] 之间添加 ".sv":"timestamp"

例如:

let objectToSave: Dictionary <String: AnyObject> = ["date": [".sv": "timestamp"], "key1": "value1", "key2": 1234.....] 

Code screenshot

应将其写入您的 Firebase:

date: 1463329843759

Firebase screenshot

从 Firebase 4.0 开始,您可以使用 ServerValue.timestamp()

例如:

    let ref = Database.database().reference().child("userExample")
    let values = ["firstName": "Joe", "lastName": "Bloggs", "timestamp": ServerValue.timestamp()] as [String : Any]

    ref.updateChildValues(values) { (err, ref) in

        if let err = err {
            print("failed to upload user data", err)
            return
        }

    }