La función de consulta de Firebase dentro de la función devuelve nulo
Estoy tratando de crear una aplicación de seguimiento de asistencia estudiantil con javascript con firebase.
Pero tengo un problema, estoy tratando de consultar dentro de una función y hacer que la función devuelva esos datos.
Pero cuando lo intento, no devuelve nada. 'indefinido'
Aqui esta mi codigo
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;
};
}
Y aquí está mi código para probarlo
var db = initFireSubjects();
var test = db.getAll('2014');
console.log(test);
La estructura de los datos se ve así
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'
}
}
}
El caso es que puedo extraer datos si lo hago así
db.getAll = function(year){
var value;
this.connection.child(year).on('value',function(snapshot){
value = snapshot.val();
console.log(value);
}
}
No sé por qué no puede extraer datos de una manera orientada a objetos.
Cualquier entrada?
Gracias.