Consulta Firebase dentro da função retorna nulo
Estou tentando criar um aplicativo Rastreador de presença do aluno com javascript e firebase.
Mas eu tenho um problema, estou tentando consultar dentro de uma função e a função retorna esses dados.
Mas quando eu tento, ele não retorna nada. 'Indefinido'
Aqui está o meu código
var root = 'https://path.firebaseio.com';
function initFireSubjects(){
var db = {};
db.connection = new Firebase(root + '/subjects');
db.addSubject = function (year, code, name) {
this.connection.child(year).push({
code: code,
name: name
});
};
db.getAll = function (year) {
var value;
this.connection.child(year).on('value', function (snapshot) {
value = snapshot.val();
});
return value;
};
}
E aqui está o meu código para testá-lo
var db = initFireSubjects();
var test = db.getAll('2014');
console.log(test);
A estrutura dos dados se parece com isso
subject:{
'2014':{
randomKey1:{
code:'eng1',
name:'English 1'
},
randomKey2:{
code:'math1',
name:'Mathematics 1'
},
randomKey3:{
code:'sci1',
name:'Science 1'
}
},
'2015':{
randomKey4:{
code:'polsci1',
name:'Political Science 1'
},
randomKey5:{
code:'comprog',
name:'Computer Programming'
}
}
}
O caso é que eu posso extrair dados se fizer assim
db.getAll = function(year){
var value;
this.connection.child(year).on('value',function(snapshot){
value = snapshot.val();
console.log(value);
}
}
Não sei por que ele não pode extrair dados de maneira orientada a objetos.
Alguma entrada?
Obrigado.