Firebase-Abfrage innerhalb der Funktion gibt null zurück
Ich versuche, eine Anwendung zur Anwesenheitserfassung für Schüler mit Javascript und Firebase zu erstellen.
Aber ich habe ein Problem, ich versuche, innerhalb einer Funktion abzufragen und die Funktion diese Daten zurückgeben zu lassen.
Aber wenn ich es versuche, gibt es nichts zurück. 'nicht definiert'
Hier ist mein Code
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;
};
}
Und hier ist mein Code, um es zu testen
var db = initFireSubjects();
var test = db.getAll('2014');
console.log(test);
Die Struktur der Daten sieht so aus
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'
}
}
}
Der Fall ist, ich kann Daten ziehen, wenn ich es so mache
db.getAll = function(year){
var value;
this.connection.child(year).on('value',function(snapshot){
value = snapshot.val();
console.log(value);
}
}
Ich weiß nicht, warum es nicht möglich ist, Daten objektorientiert abzurufen.
Eine Eingabe?
Vielen Dank