2014-09-21 55 views
1

我需要从一个函数访问登录用户的user.uid,以便我可以将它传递给Firebase参考。根据意见如何在angularfire的另一个函数中使用.then()函数的结果?

更新代码:

var populateTasks = function(date){ 
    var promise = getKey(); 
    promise.then(function(user){ 
    $scope.ref = new Firebase("https://myfirebase.firebaseio.com/users/"+user.uid+"/tasks/" + getWeekStart(date)); 
    var sync = $firebase($scope.ref); 
    var week = sync.$asArray(); 
    $scope.week = week; 
    }); 
}; 

function getKey(){ 
    return simpleLogin.getUser(); 
} 

感谢。

+0

Hi @EmptyPockets!我知道你已经解决了这个问题,但为了未来的帖子,我想指出的是,开发人员没有足够的背景来与你一起工作。例如,simpleLogin.getUser()从哪里来? (大概来自这里没有提到的angularFire-seed)。另外,比这更好的方法是使用[解决你的路线](https://www.firebase.com/docs/web/libraries/angular/guide.html#section-routes),然后不必担心用户是否被加载。 – Kato 2014-09-22 14:26:11

+0

@Kato谢谢,下次会做。对于我最近的问题,我发布了一个拥有所有相关信息的Plunkr。我想我会为未来的职位做到这一点。感谢您在stackoverflow上提供的所有帮助。你没有博客或任何东西? – EmptyPockets 2014-09-22 19:19:24

回答

0

您需要在getKey()中返回承诺,然后在populateTasks()返回的承诺上致电then()以访问结果。

+0

感谢您的快速响应。如何在获得密钥时返回承诺?返回$ promise? – EmptyPockets 2014-09-21 20:27:21

+0

@EmptyPockets:'然后()'返回一个承诺,所以你只需要返回:'返回....然后(...);' – SLaks 2014-09-21 20:28:00

+0

我很抱歉,但我是新来的。你能否请进一步解释?返回simpleLogin.getUser()。then(function(user){}); – EmptyPockets 2014-09-21 20:31:44

相关问题