Я пытаюсь получить информацию из базы данных firebase
, но продолжаю получать undefined
Вот мой код для получения объекта из базы данных:
import { AppUser } from './models/app-user';
import { Injectable } from '@angular/core';
import { AngularFireDatabase, AngularFireObject } from 'angularfire2/database';
import * as firebase from 'firebase';
@Injectable({
providedIn: 'root'
})
export class UserService {
constructor(private db: AngularFireDatabase ) { }
get(uid: string): AngularFireObject<AppUser> {
console.log(this.db.object('/users/' + uid));
return this.db.object('/users/' + uid);
}
}
лог консоли из этого get
метода: [object Object]
Я не могу найти, как получить имя пользователя или другую информацию об этом пользователе.
Вот мой AppUser:
export interface AppUser {
email: string;
isAdmin: boolean;
name: string;
}
Я нашел несколько ответов, но они связаны с более старой версией Angular и не помогли мне решить проблему.
Я также видел некоторый ответ, связанный с асинхронным каналом, но это в HTML, и мне нужно, чтобы данные были доступны в файле service.ts.
Мне нужно получить результат в моем компоненте (не в HTML).
Я пытался извлечь данные пользователя так:
get appUser$(): Observable<AppUser> {
return this.user$
.pipe<AppUser>(map(user => {
if ( user ) {
this.userService.get(user.uid);
}
}));
}
но в журнале снова говорится, что я получил [object Object]
...
В моем последнем методе, который должен использовать эту информацию:
canActivate() {
return this.auth.appUser$
.pipe(map(user => {
console.log(user);
return user.isAdmin;
}));
}
Журнал консоли дают undefined