Firebase Firestore最近更改了时间戳的管理方式,我无法从时间戳中获取date
对象。
如何从新的firebase.firestore.FieldValue.serverTimestamp()
获取date对象?
Firebase Firestore最近更改了时间戳的管理方式,我无法从时间戳中获取date
对象。
如何从新的firebase.firestore.FieldValue.serverTimestamp()
获取date对象?
firebase.firestore.FieldValue.serverTimestamp()
只是返回一个占位符对象,当您向文档写入字段时使用它。它表示服务器应该将其替换为实际的Timestamp
对象。 serverTimestamp()
本身不包含任何日期信息,您无法将其转换为日期。
当您将占位符值写入文档并读取它时,它将成为Timestamp
类型对象,您可以使用其toDate()
方法将其转换为本机日期对象。
最终,我得到了我所需要的东西。
new Date(firebase.firestore.Timestamp.now().seconds*1000).toLocaleDateString()
_
)才能使其正常工作:new Date(firebase.firestore.Timestamp.now()._seconds*1000).toLocaleDateString()
。 - allegutta如果你正在寻找2022年的解决方案,这里就有:
admin.firestore.FieldValue.serverTimestamp()
您需要导入admin才能使其像这样工作:
const admin = required("firebase-admin");
admin
是从哪里来的。新手开发人员可能会对这篇文章感到非常困惑。此外最好提到这不能在浏览器中使用,只能在 Node 环境中使用,例如云函数。 - mesqueeb
firebase.firestore.FieldValue.serverTimestamp()
的返回值,因为它不是一个时间戳类型的对象。只有在文档值实际写入文档后,返回的标记值才会变成时间戳,就像我在这里回答中所描述的那样。 - Doug Stevenson