【问题标题】:AngularFire2 Get Authenticated User ID in TypescriptAngularFire2在Typescript中获取经过身份验证的用户ID
【发布时间】: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。有什么建议吗?

【问题讨论】:

    标签: angular typescript firebase firebase-authentication angularfire


    【解决方案1】:

    你可以从idTokenObservable获取uid

    this.afAuth.idToken.subscribe(user => {
                this.user = user;
                this.lists = this.af.list(`/lists/${user.uid}`);
            });
    

    请记住,这是一个 observable,这意味着您可以使用 mergeMapmap 等作为基础创建一个链。

    【讨论】:

      猜你喜欢
      • 2011-05-07
      • 2018-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-07
      相关资源
      最近更新 更多