我在Angular应用程序中具有身份验证服务,该服务在构造函数中获取当前用户ID,然后要在Firestore集合中通过该ID查找文档,将其写入Cookie,并从其他组件中的Cookie获取数据:
public userData: User;
constructor(
private fireStore: AngularFirestore,
public fireAuth: AngularFireAuth,
private cookieService: CookieService,
) {
this.fireAuth.authState.subscribe(user => {
this.fireStore.collection('users').doc(user.uid).snapshotChanges()
.subscribe((data) => {
this.cookieService.set('User', JSON.stringify(data));
this.userData = JSON.parse(this.cookieService.get('User'));
})
})
}
当我以相同的方式从AngularFireAuth获取用户数据时,它工作正常。在这种情况下,这也是一种工作方式(它获取所需的文档并将其写入Cookie),但是仅在页面刷新之后。
我做错了什么?