如何检查对象是不是是firestore.Timestamp?

Posted

技术标签:

【中文标题】如何检查对象是不是是firestore.Timestamp?【英文标题】: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;在阅读时做同样的事情是很容易的。 【参考方案1】:

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

return blogPost.createdAt instanceof firebase.firestore.Timestamp

【讨论】:

以上是关于如何检查对象是不是是firestore.Timestamp?的主要内容,如果未能解决你的问题,请参考以下文章

如何检查 String 对象是不是是链接? [复制]

如何检查对象是不是是某种类型的数组?

如何检查获取的响应是不是是javascript中的json对象

如何检查对象是不是是Java中的集合类型?

如何检查对象是不是是新型用户定义类的实例?

如何检查返回对象是不是是python中的字典[重复]