私はangle2アプリで認証にfirebaseを使用していますが、コールバックに問題があります。ユーザーがログインしているかどうかを識別するコードセグメントです。ユーザーがそれ以外の場合はfalseログインしている場合コールバックを実行する際に注文を処理する方法は?
verifyLogin(url: string): boolean {
var myUser = null;
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
myUser = user;
console.log("sdfsdfsd");
console.log(myUser);
} else {
// No user is signed in.
}
});
console.log("check");
console.log(myUser);
if(myUser){
return true;
}
console.log(myUser);
this.router.navigate(['/admin/signin']);
return false;
}
このverifyLogin機能は、trueを返します。しかし問題は、if条件がコールバックを実行する前に実行されるbottom部分です。コールバックの中に戻すことはできません。これを修正するには?
は、コールバックが非同期であることを覚えておいてください。コールバックの結果を使用する場合、メソッド "verifyLogin"は非同期です。 @samAlvinの答えを使用して、Promiseを返します。 – Lostfields