使用 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()
看看这个
属性 '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()