Ошибка ToDate() InvalidPipeArgument: ‘Не удается преобразовать временную метку .. Firebase

#angular #firebase #google-cloud-firestore

#angular #firebase #google-облако-firestore

Вопрос:

У меня есть следующее поле в Firestore: введите описание изображения здесь

Когда я пытаюсь получить ее в своем приложении, например:

<p>{{ fechaInicio | date }}</p> Получаем следующую ошибку:

ОШИБКА Ошибка: InvalidPipeArgument: ‘Не удается преобразовать «Временную метку (секунды = 1553230800, наносекунды = 0)» в дату» для канала «DatePipe»

затем я увидел, что добавление toDate() предположительно устраняет проблему:

<p>{{ fechaInicio.toDate() | date }}</p>

Это показывает дату правильно, однако я получаю следующую ошибку:

ОШИБКА TypeError: не удается прочитать свойство ‘ToDate’ неопределенного

Как я могу это решить?

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

1. загружается ли переменная fechaInicio асинхронно?

2. Да, асинхронно

Ответ №1:

Похоже, что переменная ‘fechaInicio’ загружается асинхронно. Если это так, ‘fechaInicio’ остается неопределенным, пока он не будет обновлен. Следовательно, что вы можете сделать, так это скрыть html-абзац до тех пор, пока данные не будут загружены в переменную.

Попробуйте следующую модификацию.

 <p *ngIf="fechaInicio">{{ fechaInicio.toDate() | date }}</p>
  

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

1. Спасибо, это сработало!. Объяснение очень интересное.

Ответ №2:

Просто поставьте ? после fechaInicio такого:

 <p>{{ fechaInicio?.toDate() | date }}</p>