当我使用 Firestore Admin SDK 加载和字符串化用户数据时,时间戳具有以下结构:
{
"_seconds": 1566129600,
"_nanoseconds": 0
}
当在客户端加载和字符串化相同的数据时,我得到以下结构:
{
"seconds": 1566129600,
"nanoseconds": 0
}
造成这种差异有充分的理由吗?
我在前端使用 JavaScript,后端使用 Node.js。
最佳答案
您正在查看的是任一 SDK 中时间戳的实现细节。您实际上不应该依赖这些细节。如果要从 JSON 保存和加载 Timestamp 对象,则应使用其记录的公共(public)访问器读取秒和纳秒的时间组件。然后,要重构时间戳,请将这些值传递到其构造函数中。
如果 Timestamp 对象具有 toJSON 函数,您可以调用该函数来将对象序列化为 JSON。但事实并非如此,而且您不能只对主对象本身进行字符串化。你可以file a feature request为此。
关于javascript - Firestore 时间戳属性在管理 SDK 上带有下划线前缀,但在客户端 SDK 中则没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57699973/