我正在工作的反应网络应用程序,以帮助项目管理。我面临的问题是关于Firestore的时间戳。存储在Firestore中的每个项目对象都有一个createdOn字段,该字段的类型是Fi还原时间戳。我的web应用程序正在调用一个可调用的firebase函数,它获取所有的项目并返回它们。问题是toDate()函数在web应用程序中不起作用,但是它在firebase函数中工作。我想知道问题是否在于当转换为JSON时,timeStamp丢失了一些东西。我是遗漏了什么,还是应该把它们作为某种东西储存起来?我真的不想转换所有的日期服务器端,因为这样会减慢函数调用的速度。我正在使用时间戳过滤客户端和分析。
如何将时间戳作为项目对象的一部分:createdOn: admin.firestore.Timestamp.now(),
在可调用函数中,我正在测试以下内容:console.log(allProjects[0].createdOn!.toDate())和这个功能。
在我的web应用程序中,我调用这个data.createdOn.toDate()并得到错误TypeError: data.createdOn.toDate is not a function
任何帮助都将不胜感激。谢谢,
我在功能方面使用
"firebase-admin": "^8.0.0",
"firebase-functions": "^2.3.1",和客户端
"firebase": "^6.1.0",
"typescript": "^3.5.1"
"react": "^16.8.6",发布于 2019-06-03 04:14:37
“我想知道问题是否在于当转换到JSON时,timeStamp丢失了一些东西。”
是的,它失去了一些东西。时间戳将被序列化,使其秒和纳秒字段将被单独发送。您必须从客户端上接收到的值中重新构建新时间戳对象。由于您没有显示非常具体的代码,所以不可能提供更多的信息。我强烈建议您不要仅仅依赖于时间戳的默认JSON序列化,而是在两端显式地读取和写入其秒和纳秒字段。
还请参见以下与Java相关的问题:如何在Android中序列化Firestore TimeStamp?
https://stackoverflow.com/questions/56420690
复制相似问题