AngularFire2在Typescript中获取经过身份验证的用户ID
Posted
技术标签:
【中文标题】AngularFire2在Typescript中获取经过身份验证的用户ID【英文标题】:AngularFire2 Get Authenticated User ID in Typescript 【发布时间】:2018-02-05 09:47:44 【问题描述】:我正在尝试找出如何在 TypeScipt 中获取 Firebase Authenticated 用户的 uid:
<div> (user | async)?.uid </div>
我有以下 TS 代码:
import AngularFireAuth from 'angularfire2/auth';
import * as firebase from 'firebase/app'
@Component(
selector: 'app-user-portal',
templateUrl: './user-portal.component.html',
styleUrls: ['./user-portal.component.css']
)
export class UserPortalComponent implements OnInit
user: Observable<firebase.User>;
constructor(
public afAuth: AngularFireAuth
)
this.user = afAuth.authState;
ngOnInit()
我读过的所有内容都表明我需要访问...的 id 属性
this.afAuth.auth.currentUser.uid
...但这似乎没有暴露。如果我将其更改为...
this.afAuth.auth.currentUser.toJSON()
... 并将其发送到控制台,然后我确实看到了一个 uid 属性。我怎样才能得到那个属性?
这甚至是为用户获取 uid 的正确方法吗?会...
this.afAuth.auth.currentUser.getIdToken()
... 会更好吗?如果这更好,我也看不出如何从中获取 uid。有什么建议吗?
【问题讨论】:
【参考方案1】:你可以从idToken
Observable
获取uid
this.afAuth.idToken.subscribe(user =>
this.user = user;
this.lists = this.af.list(`/lists/$user.uid`);
);
请记住,这是一个 observable,这意味着您可以使用 mergeMap
、map
等作为基础创建一个链。
【讨论】:
以上是关于AngularFire2在Typescript中获取经过身份验证的用户ID的主要内容,如果未能解决你的问题,请参考以下文章
使用 Angular2、angularfire2 和 Typescript 从 Firebase 对象中获取数据
如何解决 rxjs Typescript 错误(Ionic 3,angularfire2)
typescript AngularFire2 - 如果用户已登录则显示或隐藏
typescript 用于AngularFire2的角度Firebase模块样板(使用Firestore和存储)NgModule