如何检查对象是不是是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?的主要内容,如果未能解决你的问题,请参考以下文章