Я работаю над приложением Angular6 и извлекаю данные из базы данных Firebase в реальном времени.
Чтобы получить профиль пользователя, я использую UID пользователя (который я получаю из Observable) в качестве параметра для службы angular, которая возвращает AngularFireObject <{}>
Проблема в том, что я попытался объединитьMap, SwitchMap, но я не получаю информацию профиля. (без подписки внутри подписки)
Я использую AngularFire2 для извлечения данных из базы данных RealTime
RXJS 6
Угловой 7.1.2
- this.userService.user = angularFireAuth.authState
- Использование «map» в userProfile $ Returns: Observable
- Использование «mergeMap» в userProfile $ возвращает: null
- Использование «switchMap» в userProfile $ возвращает: null
- «valueChanges ()» возвращает: наблюдаемый <{}>
this.user = this.userService.user.pipe(
shareReplay(1),
tap(data => {
console.log({
user: data
})
})
)
this.userProfile$ = this.user.pipe(
map((data: firebase.User) => this.userService.getUserProfileById(data.uid).valueChanges()),
tap(data => {
console.log({
userProfile: data
})
})
).subscribe()
Я ожидаю получить объект с данными из базы данных реального времени (что является результатом подписки на "valueChanges ()").