1

私はこのログイン機能を使用しています。しかし、エラーがキャッチされない場合にのみリダイレクトしようとしています。私はこの下のコードを試しましたが、これは私が望むように動作しません、私は知らない成功関数のようなアイデアですか?認証後のIonic/Firebase成功関数

$scope.loginEmail = function($email, $password){ 
 
    
 
var testing = 1; 
 
$scope.error = ''; 
 

 
firebase.auth().signInWithEmailAndPassword($email, $password).catch(function(error) { 
 

 
    var errorCode = error.code; 
 
    var errorMessage = error.message; 
 
    $scope.error = errorMessage; 
 
    testing = 0; 
 
    console.log("Testing 1 : ", testing); 
 
    
 
}); 
 

 
if(testing === 1) 
 
{ 
 
    console.log("Testing 2 : ", testing); 
 
    $state.go("menu.VNements"); 
 
} 
 
};

答えて

1

機能はPromiseを返す - catchはエラーであるとthenは成功のためです。より明確にするために

​​
+0

これは確かに動作します。 Firebaseのドキュメンテーションがこのアプローチを強調しない理由は、ユーザーが同じページに再度訪問したときに、通常、再度サインインする必要がないからです。サインイン方法の '()'の代わりに '' onAuthStateChanged() '](https://firebase.google.com/docs/auth/web/manage-users#get_the_currently_signed-in_user)を聞くことで、既存の認証状態を取得できます。 –

+0

私は不思議です、あなたはどのように既存の認証状態を使用しますか?あなたは私に例を教えてもらえますか? – Memphis

1

私は、それが動作しますが、ここではドミニクトビアスのおかげで私のコードを入れて!

$scope.loginEmail = function($email, $password){ 
 
    
 
    function signInSuccess(response) { 
 
     console.log('signInSuccess : ', response); 
 
     $state.go("menu.VNements"); 
 
    } 
 

 
    function signInError(response) { 
 
     console.log('signInError : ', response); 
 
    } 
 

 
firebase.auth().signInWithEmailAndPassword($email, $password) 
 
    .then(signInSuccess) 
 
    .catch(signInError);

関連する問題