关于 ios:如何在 swift 中使用 FieldValue.serverTimestamp() 将 TimeStamp 分配给 FireStore

How to assign TimeStamp to FireStore using FieldValue.serverTimestamp() in swift

如何使用 FieldValue.serverTimestamp() 分配时间戳,它返回 FSTServerTimestampFieldValue: 0x6000024ee0e0,因为 debugPrint(FieldValue.serverTimestamp()) 在调试菜单中显示

代码在这里

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
let db = Firestore.firestore()
    let settings = db.settings
    settings.areTimestampsInSnapshotsEnabled = true
    db.settings = settings        
    db.collection(THOUGHTS_REF).addDocument(data: [

        CATEGORY : categorySelected,
        NUM_COMMENTS : 0,
        NUM_LIKES : 0,
        THOUGHT_TXT : thoughtTxt.text!,
        TIMESTAMP : FieldValue.serverTimestamp(),
        USERNAME : username


    ]) { (err) in
        if let err = err {
            debugPrint("Error adding document: \\(err)")
            return
        }
    }
    self.navigationController?.popViewController(animated: true)
}


据我所知,目前还没有办法立即显示时间戳。服务器端时间戳仅在服务器上生成,并且在服务器返回响应之前为 null。这就是为什么您也会收到该回复。

几个月前我读过一篇文章,据说正在努力让客户立即估计时间戳。一旦该功能发布,您将能够获得两个事件,类似于 Firebase 实时数据库的工作方式。第一个事件将包含时间戳的本地估计,第二个事件将包含来自服务器的实际确认时间戳。