代码之家  ›  专栏  ›  技术社区  ›  Jonathan

在Firebase的角度8中显示displayName

  •  0
  • Jonathan  · 技术社区  · 5 年前

    我在显示我的“displayName”属性时遇到问题组件.ts文件(用于控制台.log),但它在模板中运行良好。

     constructor(
        private fb: FormBuilder,
        private auth: AuthService
      ) { }
      ngOnInit() {
        this.buildForm();
        console.log(this.auth.user.displayName); // this line is the problem
      }
    

    但是,这在模板中运行良好:

    {{ user.displayName }}
    

    如果你需要更多的服务细节。。。

    验证服务.ts

    export class AuthService {
    
      user: Observable<User>;
    
      constructor(
        private afAuth: AngularFireAuth,
        private afs: AngularFirestore,
      ) {
        //// Get auth data, then get firestore user document || null
        this.user = this.afAuth.authState.pipe(
          switchMap(user => {
            if (user) {
              return this.afs.doc<User>(`users/${user.uid}`).valueChanges();
            } else {
              return of(null);
            }
          })
        );
      }
    
    0 回复  |  直到 5 年前
        1
  •  0
  •   Jonathan    5 年前

    我不得不订阅可观察的。

    this.auth.user.subscribe(user => {
      this.userForm.get('email').setValue(user.email);
      this.userForm.get('displayName').setValue(user.displayName);
    });