Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Ele primeiro retorna para depois executar metodo anonimo, como resolver?

Boa Noite! Já fiz o curso e estou fazendo alguns exercícios a mais pra fixar melhor o conhecimento.Me ocorreu um problema e não sei o motivo, segue o código a baixo.

public  Livro BuscaumLivro()
{
    livro= new Livro();
    final String titulo="7";
    FirebaseDatabase firebasedatabase;
    firebasedatabase=FirebaseDatabase.getInstance();
    DatabaseReference myRef = firebasedatabase.getReference();

     myRef.addValueEventListener(new ValueEventListener() {
        public void onDataChange(DataSnapshot dataSnapshot) {

            for (DataSnapshot ds : dataSnapshot.getChildren()) {

                livro.setTitulo(ds.child(titulo).getValue(Livro.class).getTitulo());
                livro.setAutor(ds.child(titulo).getValue(Livro.class).getAutor());
                livro.setAnoedicao(ds.child(titulo).getValue(Livro.class).getAnoedicao());
                livro.setEditora(ds.child(titulo).getValue(Livro.class).getEditora());
                livro.setLocalizacao(ds.child(titulo).getValue(Livro.class).getLocalizacao());
                Log.e(TAG,   livro.getAutor());
            }
        }

        @Override
        public void onCancelled(DatabaseError error) {
            // Failed to read value
            Log.w(TAG, "Failed to read value.", error.toException());
        }
    });
    Log.e(TAG, livro.getAutor()+"ultimo");
    return livro;

}

eu queria saber o motivo de aparecer primeiro a mensagem no LOG a mensagem null ultimo e depois aparece o nome do autor, ele esta me retornando nulo

1 resposta
solução!

Fala ai William, de boa ?

Cara lembra que esse método é realizado de maneira assincrona, pode ser que você retorne e ainda não tenha chego o resultado dessa sua requisição.