8

iOS 指南的“离线功能”部分中提到kFirebaseServerValueTimestamp,这似乎在 Swift 项目中不起作用(自动完成不会提示它)。

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

我试过:

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

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

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

我怎样才能做到这一点?

4

2 回答 2

10

将括号添加到条目时添加".sv":"timestamp"括号。[ ]Firebase

例如:

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

代码截图

它应该写入您的 Firebase,如下所示:

date: 1463329843759

Firebase 屏幕截图

于 2016-05-15T16:45:59.007 回答
7

从 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
        }

    }
于 2017-06-04T12:14:30.613 回答