Как получить данные документа из firebase.firestore.DocumentSnapshot?

#angular #firebase #google-cloud-firestore

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

Вопрос:

Я получаю документ из Firestore, это работает:

 this.sub = this.beluginService.getBeluginById(this.personId)
.subscribe((documentSnapshot: firebase.firestore.DocumentSnapshot) => {
  console.log(documentSnapshot.data());
}
  

Мой сервис:

   getBeluginById(id: string) {
    return this.afs.collection('belugin').doc(id).get();
  }
  

В консоли.войти, я получаю один объект:

 { id: "ya1jibU2pZx1niGiuAmp"
  qwCF: [0, 0, 2, 0, 0, 6, 2]
  qwCO: [0, 0, 0, 0, 2, 0, 0]
  qwIMP: [10, 0, 2, 2, 2, 4, 0]
  qwME: [0, 4, 0, 4, 2, 0, 0]
  qwPL: [0, 0, 0, 0, 0, 0, 0]
  qwRI: [0, 2, 2, 2, 2, 0, 0]
  qwSH: [0, 0, 0, 0, 0, 0, 0]
  qwTW: [0, 4, 4, 2, 2, 0, 8] }
  

Но когда я пытаюсь получить свойства объекта (etc id, qwCF):

 this.sub = this.beluginService.getBeluginById(this.personId)
.subscribe((documentSnapshot: firebase.firestore.DocumentSnapshot) => {
  this.id = documentSnapshot.data().id;
  this.qwCF = documentSnapshot.data().qwCF;
}
  

Я не могу получить свойства data()…. Мой VCCode показывает ошибку вызова метода data(). Почему?

Ответ №1:

Если documentSnapshot.data() поработать в журнале, возможно, извлечь из него данные, это будет лучше:

 const data = documentSnapshot.data();
this.id = data.id
  

В зависимости от версии ECMA, возможно

 this.id = data["id"];