我想修改下面的angularFire代码(取自文档: https://www.firebase.com/docs/web/libraries/angular/guide.html#section-angular-authentication) 因此,如果用户未登录,它还会在页面加载之前记录用户,并且用户数据可以立即使用。
这是原作:
resolve: {
"currentUser": ["simpleLogin", function(simpleLogin) {
return simpleLogin.$getCurrentUser();
}]
}
这就是我到目前为止所做的:
resolve: {
"currentUser": ["simpleLogin", function(simpleLogin) {
return simpleLogin.$getCurrentUser();
}],
"loginUser": ["simpleLogin", function(simpleLogin) {
return simpleLogin.$login("anonymous", {rememberMe : true} );
}]
}
但这会导致用户每次都登录,从而重置ID(我想?)。我如何有条件地这样做,以便他们只在登录时才登录?
答案 0 :(得分:0)
我不是使用两种解决方法,而是将它们链接在一起。由于$ login返回一个承诺,这是非常顺利的:
resolve: {
"currentUser": ["simpleLogin", function(simpleLogin) {
return simpleLogin.$getCurrentUser().then(function(user) {
if( user === null ) {
// log in now...
return simpleLogin.$login('anonymous', {rememberMe: true});
}
else {
// logged in!
return user;
}
});
}]
}