【发布时间】:2019-01-20 02:29:05
【问题描述】:
我有以下代码在服务中
constructor(
private afAuth: AngularFireAuth,
private firestore: AngularFirestore,
){
this.user = afAuth.authState;
this.LoggedInUserList = firestore.collection(this.dbPath);
this.user.subscribe(res =>{
this.loggedInUserKey = res.uid;
this.userDetails$ = this.LoggedInUserList.doc(res.uid);
})
}
我正在访问每个组件中的值,如下所示
constructor(
private authService: AuthService
) {
}
ngOnInit()
{
this.authService.userDetails$.valueChanges().subscribe(data => {
console.log(data);
});
}
在页面没有刷新之前它很好,但是当我刷新页面时,userdetails$ 变得未定义。
我是角度新手,请帮忙
注意:我之前使用的是 localstorage,但我不想使用它。 由于我将 userdetails 存储在 firestore 中,并且获取用户详细信息的相应密钥在 afAuth.authState 中,所以我拥有所有详细信息,无需用户本地存储。
更新: 后面的事情发生在组件中,authService:AuthService 正在调用服务构造函数,但在完成构造函数之前 执行下面的代码,并且该时间点对 userdetails$ 的分配尚未完成
this.authService.userDetails$.valueChanges().subscribe(data => {
console.log(data);
});
谢谢
【问题讨论】:
标签: angular service google-cloud-firestore angular6