Variable in onDataChange in Firebase setzen (singleValue Listener)

Dies ist nur ein Beispiel für meinen Code. Im Moment funktioniert es einwandfrei, wenn ich die Variable userName in onDataChange drucke. Wenn ich jedoch versuche, den Benutzernamen außerhalb des Listeners zu drucken, wird "null" ausgegeben. Wie kann ich eine Variable mit den gewünschten Daten in onDataChange () speichern?

public class FireBaseTest extends .... {

    String userName;

    ...

    mDatabase.child("Users").child(key).addListenerForSingleValueEvent(
                    new ValueEventListener() {
                        @Override
                        public void onDataChange(DataSnapshot dataSnapshot) {
                            // Get user value
                            userName = dataSnapshot.child("userName").getValue(String.class);
                            System.out.println(userName); //Not null
                        }

                        @Override
                        public void onCancelled(DatabaseError databaseError) {
                        }
                    });


    ...

    System.out.println(userName); //Null

EDIT / UPDATE: Also bevor ich einen Prozess hatte, der den Wert, der abgehört wurde, annimmt und etwas damit anfängt. Ich habe nur einige Anpassungen an diesem Prozess vorgenommen und ihn in die onDataChanged-Methode eingefügt, um mein Leiden zu beenden. Obwohl es nicht ganz befriedigend ist, hat es funktioniert. Vielen Dank an alle, die geantwortet haben.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage