Почему событие Firebase 'child_added' срабатывает после события 'value'?
По данным Firebaseдокументация:
Ценность событийвсегда срабатывает в последнюю очередь и гарантированно содержат обновления от любых других событий, которые произошли до того, как был сделан этот снимок.
Вот простой пример (jsbin) гдеchild_added
пожарыдо value
, Это поведение было подтверждено с использованием последней версии Firebase (2.3.1):
var ref = new Firebase("https://reform.firebaseio.com");
ref.child('pets').once('value', function(snapshot) {
snapshot.forEach(function(pet) {
console.log("Pet: " + pet.key());
pet.ref().child('food').once('value', function (foods) {
console.log('value event called for ' + pet.key());
});
pet.ref().child('food').once('child_added', function (foods) {
console.log('child_added event called for ' + pet.key());
});
});
});
В этом примере журнал консоли будет:
Pet: cat
Pet: dog
value event called for cat
child_added event called for cat
value event called for dog
child_added event called for dog
Почемуchild_added
Событие пожара последним в этом случае? Не нарушает ли это гарантию на документацию?