【发布时间】:2020-03-07 14:39:20
【问题描述】:
在 Angular 应用中添加调用以初始化全局侦听器的合适位置是什么?
代码如下:
export class AuthService {
constructor(
private store: Store<fromAuth.State>,
private afAuth: AngularFireAuth
) {
this.afAuth.auth.onAuthStateChanged(payload => {
if (payload) {
const user: UserBeta = {
uid: payload.uid,
displayName: payload.displayName,
email: payload.email,
emailVerified: payload.emailVerified
};
this.store.dispatch(AuthActions.authenticated({ user }));
} else {
this.store.dispatch(AuthActions.notAuthenticated());
}
});
}
如您所见,我已将其添加到 AuthService 的构造函数中,但它似乎不适合我。
我还担心以下代码有两个依赖项:Ngrx 和 AngularFireAuth。
在这种情况下,移动到FirebaseModule(即firebase.module.ts)的某个地方是否正确,如果是,调用会是什么样子?
【问题讨论】:
-
我一直在努力解决这个问题。我最终在需要检查用户以确保获得用户结果的组件中等待。根据我的经验,构造函数可能很棘手。我只是在服务中做了一个普通的方法,并在必要的组件中订阅它。在全球范围内拥有一些东西真的很难。
-
是啊,好像
AppComponent的ngOnInit应该是这样
标签: javascript angular typescript firebase firebase-authentication