Как проверить, является ли объект firestore.Временная метка?

#javascript #typescript #firebase #google-cloud-firestore

#javascript #typescript #firebase #google-облако-firestore

Вопрос:

Я работаю над функцией проверки.

Есть ли способ проверить, является ли объект 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;
}
  

Комментарии:

1. Какой код вы пишете? Правила безопасности или что-то еще? Пожалуйста, разверните пример кода и описание, чтобы было более понятно.

2. @DougStevenson Это не для правил безопасности. Это форма администратора для добавления / редактирования сообщений в блоге на веб-сайте. И blogPost.createdAt должно быть Timestamp . Поскольку я полностью проверяю свойства на blogPost , я хотел бы также проверить это. Когда администратор нажмет на Save , я выполню эту проверку на клиенте, прежде чем сохранить ее в Firestore.

3. Итак, что это за язык? Пожалуйста, разверните свой код, чтобы показать, как создается временная метка и как она должна проходить через этот код. И отладочный вывод также был бы полезен.

4. @DougStevenson Извините за недостающие фрагменты. Я добавил больше деталей к вопросу.

5. Мне не понятно, почему клиенты Firebase для JS не преобразуют временные метки в собственные Date . Они преобразуются Date при записи в; было бы несложно сделать то же самое при чтении.

Ответ №1:

В JavaScript и TypeScript есть оператор instanceof, который проверяет тип объекта на соответствие прототипу.

 return blogPost.createdAt instanceof firebase.firestore.Timestamp