javascript - Firestore 时间戳属性在管理 SDK 上带有下划线前缀,但在客户端 SDK 中则没有

标签 javascript firebase google-cloud-firestore

当我使用 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/

相关文章:

iOS Firebase 传播匿名身份验证的自定义声明

javascript - 未捕获的语法错误 : The requested module '/node_modules/.vite/firebase_firestore.js?v=32c7ddf6' does not provide an export named 'default'

firebase - 您如何在水平扩展的应用程序上管理 websockets?

javascript - TinyMCE - 允许表格单元格元素作为有效的 html

javascript - Backbone.js ModelBinder 将默认事件更改为 keyup

javascript - 将值传递给 div 并将其添加到前面

firebase - redux-firestore 监听器错误 : FirebaseError: Missing or insufficient permissions.?

javascript - 将数组插入数组中包含的对象中

firebase - 我如何在 “then”中获取此变量?

javascript - 如果鼠标不动,如何使叠加层淡出?