【发布时间】:2021-02-28 12:28:46
【问题描述】:
我在我的项目中使用 Firebase Cloud Firestore,并创建了 Custom Objects 来处理传入和传出数据。这非常适合我的需求 - 除了一个例外。
我想在我的对象上设置一个 serverTimestamp。我已经阅读了文档,发现我可以做到这一点like this。文档声明我可以在setData 和updateData 调用中使用FieldValue.serverTimestamp(),并显示以下示例:
db.collection("objects").document("some-id").updateData([
"lastUpdated": FieldValue.serverTimestamp(),
]) { err in
...
}
但是,在我的代码中,我将自定义对象传递给这些函数,如下所示:
let city = City(name: "Los Angeles")
do {
try db.collection("cities").document("LA").setData(from: city)
} catch let error {
print("Error writing city to Firestore: \(error)")
}
所以,我想要为我的自定义类添加一个新属性,它会做两件事:
- 第一次创建数据时会设置一个serverTimestamp
- 获取数据时会将时间戳存储为我可以使用的日期。
我需要对我的自定义类做些什么来实现这一点?
public struct City: Codable {
let name: String
let createdAt: Date
}
提前感谢您的帮助!
【问题讨论】:
标签: swift firebase google-cloud-firestore