2015-10-06 122 views
0

我執行以下火力地堡查詢:是否可以檢測Firebase快照何時執行?

var getAdmin = function() { 
    var rootRef = new Firebase(FIREBASE_URI), 
     adminList = [], 
     deferred = $q.defer(); 

    rootRef.child('user').orderByChild('role').startAt(21).once('child_added', function (administrator) { 
     // Add each Administrator to Admin List 
     adminList.push(administrator); 
    }); 

    // deferred.resolve(?) 

    return deferred.promise; 
}; 

我想解決與管理員列表的承諾。如何檢測Firebase快照何時完全執行?

+0

的可能的複製[如何在火力地堡DB丟棄初始數據](http://stackoverflow.com/questions/19883736/how-to-discard-initial-data-in-a-firebase-db ) – Kato

回答

1

Firebase是一個實時平臺,因此列表永遠不會「完全執行」。

如果你只是想在那個時刻清單的那一部分,你應該使用.once('value', callback)

rootRef.child('user').orderByChild('role').startAt(21).once('value', function(list) { 

    // Add each Administrator to Admin List 
    list.forEach(function(adminSnap) { 
     adminList.push(adminSnap.val()); 
    }); 

    deferred.resolve(adminList) 
}); 

return deferred.promise; 
+0

Thanks Anid。我以錯誤的方式看待這個問題。 – Lindauson