Это связано с тем, что функция getScoresOfPlayer
возвращает selectedPlayerScores
до разрешения обещания, возвращенного методом once()
.
Вы должны включить return
в then()
следующим образом:
var firebaseRef = firebase.database().ref();
function getScoresOfPlayer(player) {
console.log(player);
var selectedPlayerScores = [];
return firebaseRef.once('value') //return here as well
.then(function(snap) {
snap.child('scores').child(player).forEach(function(child) { //I guess it should be child(player) and not child('thierschi') here
selectedPlayerScores.push([child.key, child.val()]);
});
return selectedPlayerScores;
});
}
, что означает, что вы должны вызывать свою функцию следующим образом, поскольку она будет асинхронной и возвращает обещание:
getScoresOfPlayer('xyz')
.then(function(selectedPlayerScores) {
....
})