我正在玩Angular2中的Firebase,我被卡在訪問this
承諾。訪問此Firebase Angular2承諾
這是我的腳本。對於上下文的理解:在登錄時,我想檢查與該用戶相關的數據庫中的基本數據仍然是最新的。
import { Injectable, Inject } from '@angular/core';
import { AngularFire, AuthProviders, FirebaseAuthState, FirebaseApp } from 'angularfire2';
@Injectable()
export class AuthService {
user;
userUID;
userEmail;
isAuthenticated: boolean = false;
constructor(public af: AngularFire, @Inject(FirebaseApp) firebaseApp: firebase.app.App) {
this.af.auth.subscribe(authState => {
if (authState && !authState.auth.isAnonymous) {
this.user = authState;
this.isAuthenticated = true;
this.userEmail = this.user.auth.email;
this.userUID = this.user.auth.uid;
firebaseApp.database().ref('/users/' + this.userUID).once('value').then(function(snapshot) {
if (snapshot.val().email !== this.userEmail) { //ERROR HERE
console.log('update the email in database here');
}
});
console.log('User Logged in', this.user, this.userEmail, this.userUID);
return;
}
this.logout();
console.log('User Not Authenticated', this.user);
});
}
錯誤當然在這裏我想這樣做比較行:
if (snapshot.val().email !== this.userEmail)
我在JavaScript知道/打字稿是很煩人的,我不能找到一個辦法讓我的腳本工作。
感謝它按預期工作......必須在我的打字技能。 – BlackHoleGalaxy