如何观察angularfireobject?

时间:2018-06-16 23:35:14

标签: firebase angularfire2

我无法使用angularfireobject从Firebase读取数据。

这是我的代码:

export class UserService {
    user: Observable<any>;
    constructor(private db: AngularFireDatabase) {
    }
    public getUser($userId: string){
        this.db.object('users/'+$userId).valueChanges();
    } 
}

并在user.component.html

<h1>Welcome {{ (userService.user | async)?.name }}!</h1>

userService.user | json给出null。

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您没有在我看到的任何地方设置.user Observable,并且永远不会调用.getUser()

如果您打算显示当前用户的信息,您还必须提供身份验证:

export class UserService {
    user: Observable<any>;
    constructor(private db: AngularFireDatabase, private auth: AngularFireAuth) {
       this.user = auth.user.pipe(switchMap(user => 
         user ? db.object(`users/${user.uid}`).valueChanges() : of(null)
       ));
    }
}