2015-08-11 17 views
5
var user = null;  

this.showLoginDialogGoogle = function(){ 

     var ref = new Firebase("https://googlelogin1.firebaseio.com"); 
     ref.authWithOAuthPopup("google", function(error, authData) { 
      if (error) { 
       console.log("Login Failed!", error); 
      } else { 
       console.log("Authenticated successfully with payload:", authData); 
       user = authData; 
       This.goToPage('/profile'); 
       $rootScope.flag=true; 
       $rootScope.$digest(); 
      } 
     }); 
    }; 

Kullanıcıyı firebase google kimlik doğrulaması ile doğruladı. Sorun, sayfamı yenilediğimde oturumumun süresi dolar ve authDatanull olur. Sayfayı yeniledikten sonra, authData benim kimlik doğrulama sırasında aldığım verilerle kalmasını nasıl sağlayabilirim?Sayfamı yenilediğimde Firebase authData null olur

cevap

1

Sen monitor authentication state istersiniz: Eğer AngularFire kimlik doğrulama sarmalayıcılarını kullanmadığınız

// Register the callback to be fired every time auth state changes 
var ref = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com"); 
ref.onAuth(function authDataCallback(authData) { 
    if (authData) { 
    console.log("User " + authData.uid + " is logged in with " + authData.provider); 
    } else { 
    console.log("User is logged out"); 
    } 
}); 

Not. Yaklaşımınız kullanıcıyı doğrulayacak olsa da, güncellenen kapsamın Açısallığını kendiniz bildirmeniz gerekir (bkz. $timeout()). Bunu kendiniz yapmayı tercih etmiyorsanız, AngularFire'ın auth sarmalayıcılarına, özellikle de $onAuth()

İlgili konular