2014-09-21 39 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

相關問題