我有一个简单的问题,我无法缠住我的头。
在我的身份验证服务上,我有以下内容:
authService.ts
user$: Observable<user>;
constructor(private db: AngularFirestore, private afAuth: AngularFireAuth) {
this.user = this.afAuth.authState.pipe(
switchMap((userData) => {
if (userData) {
// this.userID = userData.uid;
return this.db.doc<User>(this.PATH + userData.uid).valueChanges();
} else {
return of (null);
}
})
)
}
page-component.ts在另一个组件上,我的构造函数如下所示:constructor(public authService: AuthService) {}
并且在html上:page-component.html
<div>{{ authService.user.firstName | async }}</div>
不是应该在HTML上“展开”可观察对象吗?我没有收到任何错误,但没有任何显示。如果我在page-component.ts和console.log上订阅了该用户,则可以获取整个对象。
任何提示?
尝试
<div *ngIf="(authService.user | async) as user"> {{user.firstName}}</div>
因为authService.user
是可观察到的,并且您正在尝试异步authService.user.firstName