firebase 时间戳对象在使用云功能添加时在每个键之前接收一个 _?

firebase timestamp obejct recives a _ before every key when added using a cloud funciton?

云函数的默认行为是否是以某种方式添加 in 的 stringyfy 值?使用以下函数获取值时我的时间戳结果在对象中的键之前添加了一个_?

await auth.currentUser ?
  .getIdTokenResult()
  .then((token: any) => {
    // {_seconds : num, _nanoseconds : num}
    console.log(token ? .claims.premiumUntill)

  })
  .catch((error: any) => {
    console.log(error);
  });

检查文档后,时间戳对象如下所示?

// Default
{seconds :  number ,  nanoseconds :  number}

// Recived 
{_seconds :  number ,  _nanoseconds :  number}

云函数模型

admin
  .auth()
  .getUserByEmail(context.auth ? .token ? .email!)
  .then((user) => admin.auth().setCustomUserClaims(user.uid, {
    premiumUntill: admin.firestore.Timestamp.fromDate(createdAt)
  })),

Does the default behavior of a cloud function is to add stringyfy values of in some way?

是的,但这不是 Cloud Function 环境的行为。这是 Firebase Auth 自定义声明的功能。如果你给它一个对象(比如时间戳),它会调用它的JSON来得到一个适合存储在自定义声明中的对象的JSON-compatible表示(它可以存储JSON)。这就是你所看到的。您可能不应该依赖于此,而是将其转换为更可预测的内容,例如自纪元以来的毫秒数。