Как сохранить дату в Angular в качестве метки времени для Firestore? - PullRequest
0 голосов
/ 16 ноября 2018

Я пытаюсь сохранить личные данные человека с датой рождения и датой активации в базе данных Firestore в Angular;

Однако при передаче объекта с полями типа Date() даты сохраняются в виде строки:

this.treatment.activationDate = new Date();
// gives such result in firestore with string type
// activationDate: "2018-11-16T09:48:51.137Z"

Также пытался использовать метку времени сервера, но следующий метод не возвращает допустимое значение:

firebase.firestore.FieldValue.serverTimestamp()

Результат в Firestore (не разрешено загружать изображения извините :)):

activationDate: (map)
     _methodName: FieldValue.serverTimestamp 

Однако этот метод не может предоставить мне метку времени для пользовательских дат (например, BirthDate) Так, каков наилучший способ сохранить дату как объект отметки времени в хранилище с использованием угловых параметров?

.....
import  * as firebase from 'firebase';
.....
export class AddPatientComponent implements OnInit { 
......

this.treatment.activationDate = new Date();
  //firebase.firestore.FieldValue.serverTimestamp();
  console.log("timestamp: ", this.treatment.activationDate,                  firebase.firestore.FieldValue.serverTimestamp()); 
  this.patientService.savePatient(this.patient, this.treatment,   this.courseMeds);

и модель:

export class CourseMed{
  amountPerDay: number;
  atc: String;
  name: String;
  days: number;
  dosage: number;
  form: String;
  method: String;
  periodicity: number;
  takeTimes: string[];
  used: number;
  takenCount: {};

угловой 6 Узел: 8 rxjs 6.3.3 машинопись 2.9.2

1 Ответ

0 голосов
/ 16 ноября 2018

Если вы хотите в своей базе данных Cloud Firestore значение даты:

firebase.firestore.FieldValue.serverTimestamp()

Вы должны использовать вызов функции .toDate () .Пожалуйста, также см. FireStore Timesteamp официальную документацию для получения дополнительной информации.В вашем конкретном случае вы должны использовать следующий вызов:

treatment.activationDate.toDate()

Это изменение было добавлено в Firebase JS SDK v4.13.0, где объекты JavaScript Date должны быть сохранены типаTimestamp.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...