Я выполняю следующий запрос 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 был полностью выполнен?
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;