#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