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