Согласно документации AngularFire2 , потоковые данные документа с использованием valueChanges()
возвращают наблюдаемый объект, который необходимо развернуть, чтобы получить фактические данные.
Вам потребуется subscribe
, чтобы получить значение.
Вы также можете рассмотреть возможность использования async
канала, чтобы не unsubscribe
из подписки, чтобы избежать утечек памяти.
Итак, учитывая, что эта функция предоставляется службой с именем DataService
, где бы вы ни использовали эту функцию, просто сделайте это:
import { Component, Input } from '@angular/core';
@Component({
...
})
export class HelloComponent {
data;
data$;
constructor(private dataService: DataService) {}
ngOnInit() {
this.dataService.getDataDetails('someId').subscribe(data => console.log(data));
// OR
this.data$ = this.dataService.getDataDetails('someId');
}
}
А потом, в вашем шаблоне:
{{ data$ | async | json }}
Это развернет Observable при прохождении через async
pipe. Независимо от того, что является выводом канала async
, он будет передаваться через канал json
, который stringify
Объект JSON будет преобразован в строку. И это то, что будет напечатано на строку. Надеюсь, теперь это имеет смысл.
Для вашего конкретного случая использования
Используйте это:
{{ (dataD | async)?.adresse }}
Вот StackBlitz , если это поможет. Я почти уверен, что это должно заставить его работать. Вот данные, которые у меня есть в Cloud Firestore.
![enter image description here](https://i.stack.imgur.com/JG6eA.png)