2014-09-23 2 views
0

Я хотел бы изменить код angularFire ниже (взято из документации: https://www.firebase.com/docs/web/libraries/angular/guide.html#section-angular-authentication) так, что если пользователь не вошел в него также будет регистрировать пользователя в до загрузки страницы и пользовательские данные будут готовый к использованию сразу.изменения angularFire разрешения

Это оригинал:

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

, но это приведет к пользователю нужно войти в систему каждый раз, таким образом, сброс идентификатора (I думать?). Как мне сделать это условно, чтобы они вошли в систему, если не были?

+0

Тони, если вы пытаетесь войти в их автоматически, вы собираетесь работать в блокировщики всплывающих окон и другие вопросы, так как это не выполняется на основе действие пользователя. – Kato

+0

Что вы порекомендуете мне тогда? Это текстовый редактор в Интернете, где они автоматически направляются на уникальную «площадку», немного похожую на firepad. Мне нужно знать, кто пишет что ??? Спасибо (это Том, кстати!) Ха-ха – tommyd456

+0

Я тоже не хочу использовать Firepad! – tommyd456

ответ

0

Вместо того, чтобы использовать два метода разрешения, я бы просто связал их вместе. Так как $ Войти возвращает обещание, это довольно гладко:

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; 
     } 
    }); 
    }] 
} 
+0

Отлично! Спасибо за это - он отлично работает. – tommyd456

Смежные вопросы