Хранилище Angular Fire — ошибка «Нет свойств, общих с типом ‘GetOptions'».

#angular #typescript #google-cloud-firestore

#угловатый #typescript #google-облако-firestore #angular

Вопрос:

я пытаюсь получить одно значение из документа. Я попробовал следующее:

 getAuthorData(){
const test = this.afs.collection('Authors').doc('Test').get('name');
console.log(test);
}
  

К сожалению, я получаю следующую ошибку:

ОШИБКА в src/app/blogdetail/blogdetail.component.ts(55,65): ошибка TS2559: тип ‘»name»‘ не имеет общих свойств с типом ‘GetOptions’.

Ответ №1:

На основе этих документов -> https://github.com/angular/angularfire2/blob/master/docs/firestore/documents.md

Вам нужно будет вызвать что-то вроде

 const test = this.afs.doc('Authors/Test').valueChanges();
  

Затем в вашем html вам нужно использовать асинхронный канал, например

 {{ (item | async)?.name }}
  

Если вы не хотите использовать канал, вы можете .подписаться на наблюдаемые изменения значений. Нравится..

 this.afs.doc('Authors/Test').valueChanges().subscribe(doc => {
    this.name = doc.name;
}
  

Ответ №2:

Вы не предоставляете GetOptions методу get: вы должны предоставить объект GetOptions, как это объясняется здесьhttps://firebase.google.com/docs/reference/js/firebase.firestore .GetOptions.

 var getOptions = {
source: 'cache'
};
  

Но я не думаю, что это решит вашу проблему, я полагаю, вы хотите получить значение name из документа. Тогда вам следует попробовать что-то вроде:

 this.afs.doc('Authors/'Test').get().then(object =>{
  test = object.get("name");
});
  

Вы можете ознакомиться с документацией здесь! https://firebase.google.com/docs/firestore/query-data/get-data