私は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);
});
}
エラーが、私はこの比較をしたい行にはもちろんである:私はJavaScriptを/ typescriptですでこれを知っている
if (snapshot.val().email !== this.userEmail)
は非常に迷惑ですし、私が取得する方法を見つけることができません私のスクリプトは動作します。あなたは、矢印機能を使用する場合は
を使用してください。正常に動作しています...私のタイプスクリプト技能が必要です。 – BlackHoleGalaxy