0

私のアプリに「Firebase認証を使用するGoogle」フローをコピーしたいのですが、それは1つの問題があります。常にGoogleにリダイレクトされますすでに承認されており、すぐに跳ね返ります。何か方法がありますか?は、ユーザーが最近認証されて帰ってきたユーザーであるときにGoogleでバウンスしますか?あなたが呼び出しの後Firebaseの約束ベースの認証フローは常にリダイレクトされます

Promise.resolve().then(function(){ 
    return new Promise(function(resolve) { 
    console.group('init'); 

    firebase.initializeApp({ 
     apiKey: "MY KEY", 
     authDomain: "MINE.firebaseapp.com", 
     databaseURL: "https://MINE.firebaseio.com", 
     storageBucket: "MINE.appspot.com", 
     messagingSenderId: "ALSOMINE" 
    }); 

    // Using this to make sure not in intermediate state 
    firebase.auth().onAuthStateChanged(function(user) { 
     console.log('User state stablilized.'); 
     resolve(); 
    }); 
    }); 
}).then(function() { 
    // All the various login states 
    return new Promise(function(resolve, reject) { 
    if (firebase.auth().currentUser) { 
     console.log('You were already logged in - great!') 
     resolve(firebase.auth().currentUser); 
    } 

    firebase.auth().getRedirectResult().then(function(result) { 
     if (result.user) { 
     console.log('Welcome back and congratulations on your successful login!', result.user); 
     resolve(result.user); 
     } else { 
     console.log('Not logged in, not returning - time to send you on your way.'); 
     var provider = new firebase.auth.GoogleAuthProvider(); 
     provider.addScope('https://www.googleapis.com/auth/plus.login'); 
     firebase.auth().signInWithRedirect(provider); 
     console.log('You should never see this line because it redirected!'); 
     } 
    }).catch(function(error) { 
     console.error('Returning from redirect login error:', error); 
     reject(error); 
    }); 
    }); 

}).then(function(user) { 
    console.log('Signed in user', firebase.auth().currentUser.email); 
    // LETS ROCK 

答えて

1

決意(。firebase.auth()CurrentUserに)。

コール:

リターン。

+0

Freakin brilliant、私の新しい答えはhttp://stackoverflow.com/questions/32536049/do-i-need-to-return-after-early-resolve-reject/41095255#41095255です。 –

関連する問題