【发布时间】:2018-01-31 17:25:32
【问题描述】:
我是编程和自学的新手,我搜索了很多网站,但对于我在第一个应用中遇到的一个棘手问题,就一些基本原则而言,我找不到最接近的答案。
我在 Firestore 中有一棵树,其中包含有关用户的一些信息(姓名、简历、出生日期)。此用户的密钥与 firebase.User 中的密钥相同。
我通过 authstate 订阅当前的 firebase.User,然后使用该 uid 订阅我在 firestore 中的自定义 /users 树。
我有一个返回 userObj 的服务,但我可以获得 currentUserObj 的唯一方法是将包装器包含在我所有页面的构造函数中(非 DRY)。我想创建服务来设置这些对象,然后在我的应用程序中进行访问,而无需每次都添加样板代码。我尝试通过 app.module 进行设置,以便实例化一次,但在我的其他组件中无法识别变量对象。
///我在所有页面中都包含的样板代码
this.afAuth.authState.subscribe((user: firebase.User) => {
if (user) {
this.currentFirebaseUserObj = user
this.userService.getUserObj(this.currentFirebaseUserObj.uid).valueChanges().subscribe(userObj => {
this.currentUserObj = userObj as User;
})
}
})
};
/// 我通过服务工作的部分
getUserObj(currentUserUid: string) {
return this.afs.doc<User>(`users/${currentUserUid}`)
}
有没有一种方法可以编写一次,然后在我的应用程序中访问这些对象
【问题讨论】:
标签: angularjs angular angular2-services