如何在Swift中使用FieldValue.serverTimestamp()将时间戳分配给FireStore

时间:2018-10-31 18:44:57

标签: ios swift xcode firebase google-cloud-firestore

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

代码在这里

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

1 个答案:

答案 0 :(得分:2)

据我所知,目前尚无方式立即显示时间戳。服务器端时间戳仅在服务器上生成,并且为null,直到服务器的响应返回为止。这就是为什么您也会收到该回复的原因。

几个月前,我读了一篇文章,据说有人正在努力使客户立即估算时间戳。释放该功能后,您将能够获得两个事件,类似于how Firebase Realtime Database works。第一个事件将包含时间戳的本地估计,第二个事件将包含来自服务器的实际确认时间戳。