我正在尝试从firebase函数简单地返回一个日期:
import * as functions from 'firebase-functions';
const date = functions.https.onCall(() => {
return {
date: new Date(),
iso: new Date().toISOString()
};
});
export default date;
但这是我得到的结果(使用firebase functions:shell):
RESPONSE RECEIVED FROM FUNCTION: 200, {
"result": {
"date": {},
"iso": "2018-12-08T18:00:20.794Z"
}
}
请注意,Date()对象被序列化为一个空对象,这似乎是错误的?我本来希望至少有一个.toString()或某些Date实例...
这是否意味着我必须明确避免返回Date实例?我可以编写一个自定义的序列化程序,将其包装在函数中,以通过.toISODate()等将Date实例深层转换为字符串,但是看来我一定缺少某些东西!
谢谢。
答案 0 :(得分:1)
如果您有日期对象d
,则应该:
d.getTime()
或d.toJSON()
发送JSON序列化表格。我建议使用#1,因为与其他系统进行互操作更容易。每个系统都可以在Unix时代理解日期,并且该数字不需要解析。