使用 Angular4 和 Angularfire2 (v4) 在 Firebase 中获取用户授权配置文件信息

Get User Auth Profile Info in Firebase using Angular4 and Angularfire2 (v4)

看看这个 (angular2),我一直在尝试让相同的功能在 angular4 中工作,但结果很短。我得到的错误是:

属性 'subscribe' 在类型 'Auth'

上不存在

下面是一些示例代码(不工作):

angularFire.ts(提供商):

import {Injectable} from "@angular/core";
import { Observable } from 'rxjs/Observable';
import { FirebaseObjectFactoryOpts } from "angularfire2/interfaces";
import { AngularFireDatabaseModule, AngularFireDatabase, FirebaseListObservable, FirebaseObjectObservable } from 'angularfire2/database';
import { AngularFireAuthModule, AngularFireAuth } from 'angularfire2/auth';
import * as firebase from 'firebase/app';

@Injectable()
export class AF {
  public messages: FirebaseListObservable<any>;
  public users: FirebaseListObservable<any>;
  public displayName: string;
  public email: string;
  public user: Observable<firebase.User>;

  constructor(private afAuth: AngularFireAuth, private db: AngularFireDatabase) {
    this.afAuth.auth.subscribe(
      (auth) => {
        if (auth != null) {
          this.user = db.list.object('users/' + auth.uid);
        }
      });
    this.messages = db.list('messages');
    this.users = db.list('users');
  } ... 
}

对于 AngularFire2,您必须订阅 authState,而不是 auth

this.afAuth.authState.subscribe()