修改angularFire解析

时间:2014-09-23 17:39:19

标签: firebase

我想修改下面的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(我想?)。我如何有条件地这样做,以便他们只在登录时才登录?

1 个答案:

答案 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;
       }
    });
  }]
}