自最近以来,Firestore不将时间戳记作为Date对象而是作为Timestamp对象返回。意思是,每次查询后,您都必须执行以下操作:
// Old:
const date = snapshot.get('created_at');
// New:
const timestamp = snapshot.get('created_at');
const date = timestamp.toDate();
我有多个时间戳存储在其中的对象,在对对象执行任何操作之前,我被迫分别转换每个时间戳。我现在要做的是:
let user = // get user from firestore
user.created = user.created.toDate()
user.lastUpdated = user.lastUpdated.toDate()
user.foo.foo.foo.foo.fooDate1 = user.foo.foo.foo.foo.fooDate1.toDate()
user.foo.foo.foo.fooDate1 = user.foo.foo.foo.fooDate1.toDate()
...
user.foo.fooDate99 = user.foo.fooDate99.toDate()
有办法解决吗?
即使我不需要转换时间戳,我也必须对所有文档执行此操作,因为当存在原始Firestore时间戳时,各种依赖项(例如,贬值)会因“ Non-POJO”错误而中断。我的对象。
是否可以将文档的所有时间戳直接转换为普通的Date对象,还是手动方法是唯一的选择?
答案 0 :(得分:0)
没有简单的选项可以切换以实现此目标。
如果您不想手动更改它们,则可以编写一些代码来递归地归纳所有对象的所有属性,检查哪些对象看起来像Timestamp对象(例如,它具有toDate函数),然后进行转换。