FieldValue.serverTimestamp()时间戳格式不一致问题求助
FieldValue.serverTimestamp() 在add与update操作中生成的时间戳格式不一致,导致orderBy排序失效
使用FieldValue.serverTimestamp()时出现格式不一致问题:
- 执行add操作时,生成的
lastEdited字段为字符串格式 - 执行update操作时,生成的
lastEdited字段为Firestore Timestamp/DateTime格式,此格式符合需求
Add操作代码
FirebaseFirestore.instance.collection('collectionName').add( {'lastEdited': FieldValue.serverTimestamp()}, )
执行后lastEdited为字符串格式(示例:"2024-05-20T12:34:56.789Z")
Update操作代码
FirebaseFirestore.instance.collection('collectionName').doc('id').update( {'lastEdited': FieldValue.serverTimestamp()}, )
执行后lastEdited为Firestore原生Timestamp格式(显示为包含秒数、纳秒数的时间戳对象结构)
这种格式差异导致部分文档的时间戳为字符串、部分为Timestamp类型,直接引发orderBy('lastEdited')排序功能无法正常工作,请求解决方案或相关见解。
内容的提问来源于stack exchange,提问作者juuso
相关产品推荐
相关产品推荐

