Чтобы обновить статус в новом узле:
oldRef.once('value', function(snap) {
var data = snap.val();
data.request_status = "Approved";
newRef.update(data, function(error) {
if( !error ) { oldRef.remove(); }
else if( typeof(console) !== 'undefined' && console.error ) { console.error(error); }
});
});
Вы даже можете объединить удаление старого узла и запись нового в одном обновлении с несколькими местоположениями.Ключом к этому является то, что вы даете полный путь ко всем данным, которые вы хотите обновить Firebase:
oldRef.once('value', function(snap) {
var data = snap.val();
data.request_status = "Approved";
var updates = {};
updates["Request/Approved/"+snap.key] = data
updates["Request/Pending/"+snap.key] = null;
firebase.database().ref().update(updates);
});
Важным преимуществом этого подхода является то, что либо все эти обновления выполняются успешно, либо ни одно из них не выполняется.Так что в старом месте нет никаких шансов получить данные.