【问题标题】:How to check if an object is a firestore.Timestamp?如何检查对象是否是firestore.Timestamp?
【发布时间】:2020-12-23 23:28:46
【问题描述】:

我正在开发一个验证功能。

有没有办法检查对象是否为firestore.Timestamp

我正在使用 firebase JS SDK 并且还使用 Typescript。

import * as firebase from "firebase/app";

const blogPost = {
  title: "",
  createdAt: firebase.firestore.Timestamp.now()
}

function validateBlogPostCreationDate(blogPost) {
  // SOMETHING LIKE THIS:
  return blogPost.createdAt is a Timestamp ?
    true : false;
}

【问题讨论】:

  • 你在写什么样的代码?安全规则还是其他?请扩展您的代码示例和描述以更清楚。
  • @DougStevenson 这不是为了安全规则。这是在网站上添加/编辑博客文章的管理表单。 blogPost.createdAt 应该是 Timestamp。由于我对blogPost 上的属性进行了详尽的检查,因此我也想检查一下。当管理员点击 Save 时,我将在客户端运行验证,然后将其保存到 Firestore。
  • 那么,这是什么语言?请扩展您的代码以显示时间戳是如何创建的,并且应该通过此代码汇集。调试输出也会很有帮助。
  • @DougStevenson 抱歉遗失部分。我已在问题中添加了更多详细信息。
  • 为什么 JS 的 Firebase 客户端不将时间戳转换为本机 Date,这让我很困惑。他们在写入时转换Date;在阅读时做同样的事情是很容易的。

标签: javascript typescript firebase google-cloud-firestore


【解决方案1】:

JavaScript 和 TypeScript 有一个 instanceof 运算符,用于根据原型检查对象的类型。

return blogPost.createdAt instanceof firebase.firestore.Timestamp

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-15
    • 2023-03-09
    • 2020-06-18
    • 1970-01-01
    • 2013-10-11
    • 1970-01-01
    相关资源
    最近更新 更多