Firestore TimeStamp 通过 Callable 函数传递

我正在开发一个有助于项目管理的 React Web 应用程序。我面临的问题是关于 Firestore 的时间戳。Firestore 中存储的每个项目对象都有一个createdOnFirestore 时间戳类型的字段。我的网络应用程序正在调用一个可调用的 firebase 函数,该函数获取所有项目并返回它们。问题是该toDate()函数在 web 应用程序中不起作用,但它在 firebase 函数中起作用。我想知道问题是否是在转换为 JSON 时 timeStamp 丢失了一些东西。我是不是遗漏了什么,还是应该将它们存储为某物?我真的不想转换服务器端的所有日期,因为这会减慢函数调用的速度。我正在使用时间戳在客户端进行过滤和分析。


我如何编写时间戳作为项目对象的一部分: createdOn: admin.firestore.Timestamp.now(),


在可调用函数中,我正在测试这个:console.log(allProjects[0].createdOn!.toDate())这有效。


在我的网络应用程序中,我正在调用它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",


汪汪一只猫
浏览 120回答 1
1回答

aluckdog

“我想知道问题是否出在转换为 JSON 时,timeStamp 丢失了一些东西。”是的,它失去了一些东西。时间戳将以这样的方式序列化,即它的秒和纳秒字段将被单独发送。您将不得不从客户端接收到的那些值重建一个新的 Timestamp 对象。由于您没有显示非常具体的代码,因此无法提供更多信息。我强烈建议您不要只依赖时间戳的默认 JSON 序列化,而是专门在两端明确读取和写入其秒和纳秒字段。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript