2015-10-06 60 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