Skip to content

Commit 711a70d

Browse files
committed
Anonymous sign in made right with automatic refresh when booting if user was previously logged.
1 parent dcfc086 commit 711a70d

File tree

1 file changed

+18
-4
lines changed

1 file changed

+18
-4
lines changed

app/favourite/favourite.factory.js

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,12 +78,26 @@
7878
function authenticate() {
7979
return $q(function (resolve, reject) {
8080
auth = $firebaseAuth();
81-
auth.$signInAnonymously().then(authDidSucceeded).catch(reject);
81+
var unlisten = auth.$onAuthStateChanged(function(user){
82+
if(user) {
83+
$log.info('User known. Reloading user info…');
84+
user.reload()
85+
.then(_.wrap(user, initFaves))
86+
.catch(reject);
87+
} else {
88+
$log.info('No known user. Signing in…');
89+
auth.$signInAnonymously()
90+
.then(initFaves)
91+
.catch(reject);
92+
}
93+
});
8294
//////////
83-
function authDidSucceeded(user) {
84-
$log.info('Logged in as %s with provider %s', user.uid, user.providerId);
95+
function initFaves(user){
96+
unlisten();
97+
$log.info('Logged in as %s (%s) with provider %s', user.email, user.uid, user.providerId);
98+
$log.debug('Provider data:', user.providerData);
8599
var userRef = firebase.database().ref().child('users').child(user.uid);
86-
userRef.set({provider: user.providerId});
100+
if(!userRef.child('provider').toString()) userRef.set({provider: user.providerId});
87101
service.faves = faves = $firebaseArray(userRef.child('favourites'));
88102
resolve();
89103
}

0 commit comments

Comments
 (0)