У меня есть приложение настройки firebase, и мне нужно получить все документы в коллекции, прежде чем рендерится соответствующий компонент.
Данные поступают по обычной подписке
this.db.getCountryList().subscribe(countryList => this.countryList = countryList); //working, I have the country list now
Но когда я использую распознаватель, как показано ниже, он не разрешает данные или ничего не происходит.
@Injectable()
export class CountryListResolver implements Resolve<Country[]> {
constructor(private db: DatabaseService) { }
resolve(): Observable<Country[]> {
return this.db.getCountryList();
}
}
сервис
getCountryList(): Observable<Country[]> {
return this.db.collection<Country>(this.countryPath,ref => ref.orderBy('name', 'asc')).valueChanges();
}
Маршрутизация
{ path: 'geo', component: GeographicalDataComponent, resolve: {countryList: CountryListResolver } },
компонент
this.route.data.subscribe(data => {
this.countryList = data['countryList'];
});
и зарегистрировал мой распознаватель в корневом модуле, а другие распознаватели, не поддерживающие Firebase, работают нормально.
Почему этот преобразователь настроек не работает?
версия
firebase: 4.11.0
angularfire2: ^ 5.0.0-rc.6.0
Угловая: ^ 5.2.0
Спасибо заранее