javascript atribuindo valor a variável do retorno de retorno de chamada (tempo)

Estou tendo problemas para atribuir valor de retorno da função de chamada do Firebase à minha variável global. Esta é a minha função:

  function getThePushNameById( path , id ){
    path.once( 'value', function( data ){ 
        if( data.child('id').val() != id ){
            data.forEach( function( newData ){
                var base = new Firebase( path.child( newData.name() ).toString() );
                getThePushNameById( base, id );
            })
        }else{
            //finishes the function when path is founded - returns the value
            return path.name();
        }       
    })
}

e este é o outro arquivo em que defino a solicitação:

var base = new Firebase(path/to/my/base);

var output = getThePushNameById( base , 2 )
console.log(output);

Então, meu problema é queconsole.log não esperaoutput a ser definido, mas executa-se e registraundefined. E minha pergunta é se alguém sabe como posso fazerconsole.log esperar pelo valor?

questionAnswers(2)

yourAnswerToTheQuestion