私のアプリで私は認証サービスを設定しています。かなりシンプルな動作。Angularfire2プロパティ 'then'が 'void'型に存在しません
appComponentには、Googleを通じてログインするための簡単なボタンがイベント(click)='login'
に含まれています。私が受け入れた後、私はユーザを/account
にリダイレクトしたいと思う。
アプリは、私がng serve
にエラーが発生したしかしを期待通りに動作します:
[デフォルト] C:\プロジェクト\ SRC \アプリ\ app.component.ts:24:8
Property 'then' does not exist on type 'void'.
[デフォルト] C:\プロジェクト\ SRC \アプリ\サービス\ auth.service.ts:28:22
これらのエラーがあるため、非ブロッキングのように見えますアプリが正常に動作するようです。 あなたはそれらを解決する方法を知っていますか?
私はこの問題は、私は約束を返すangularfireの認証ログインメソッドで返さ_auth.login()結果に、次に適用されるため、表示されているようだ...しかし、私はどのように私ができるかわからないを推測それが本当に問題であれば、私のコードをリファクタリングしてサービスを正しく呼び出すことができます。私は(私が間違っていれば私を修正する)それはサービス自体からリダイレクトを呼び出すことは悪い考えだと思います。
ここに私のファイルがあります。
app.component.ts:
constructor(private router: Router, private _auth: AuthService) {
this.date = new Date();
}
login() {
this._auth.login()
.then(() => {
this.router.navigate(['/account']);
});
}
logout() {
this._auth.logout()
.then(() => {
this.router.navigate(['/login']);
});
}
私のAuthService:あなたは適切にAFを使用してのAuthServiceのいずれかの例を
import { Injectable } from '@angular/core';
import { AngularFire, AuthProviders } from 'angularfire2';
@Injectable()
export class AuthService {
user = {};
isAuthenticated: boolean = false;
constructor(public af: AngularFire) {
this.af.auth.subscribe(user => {
if (user && !user.auth.isAnonymous) {
this.user = user;
this.isAuthenticated = true;
console.log('User Logged in', user, this.getUserEmail());
} else {
this.user = {};
this.isAuthenticated = false;
console.log('User Not Authenticated', user);
}
});
}
getUser() {
return this.user;
}
getUserEmail() {
return this.user.auth.email;
}
login() {
return this.af.auth.login({
provider: AuthProviders.Google
});
}
logout() {
return this.af.auth.logout();
}
}
を持っていますか?
ありがとうございます!非常に小さな間違いについては時間がかかる!私はもっと慎重に私のIDEを見ている必要があります... – BlackHoleGalaxy