2015-10-06 2 views
0

Я выполнив следующий Firebase запрос:Можно ли определить, когда был выполнен моментальный снимок 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

Возможный дубликат [как отбросить исходные данные в Firebase 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

Спасибо Anid. Я искал это неправильно. – Lindauson