如何在 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.....]
应将其写入您的 Firebase:
date: 1463329843759
从 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
}
}
在 "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.....]
应将其写入您的 Firebase:
date: 1463329843759
从 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
}
}