I am trying to access a users username to display on screen, and I am retrieving the username from my Firebase Database.
The code to get the username is kind of lengthy,
myRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String userName = dataSnapshot.child("userName").getValue(String.class);
navUsername.setText(userName);
}
@Override
public void onCancelled(DatabaseError databaseError) {
throw databaseError.toException();
}
});
So I am trying to make it where that bit of code returns a string called 'specUserName' so that I can easily access it from any class without having to put in that lengthy string of code each time. In my User.class, I added this
public String getUserName() {
myRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
specUserName = dataSnapshot.child("userName").getValue(String.class);
}
@Override
public void onCancelled(DatabaseError databaseError) {
throw databaseError.toException();
}
});
return specUserName;
}
And I am trying to retrieve that on in my HomePage.class by doing this
users.getUserName();
navUsername.setText(users.specUserName);
But now the HomePage keeps crashing whenever I open it up, and this is the error I am receiving in my Logcat.
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.example.brent.fifty_fifty.User.getUserName()' on a null object reference
at com.example.brent.fifty_fifty.HomePage.onCreateOptionsMenu(HomePage.java:84)
HomePage:84 is where I am calling getUserName() method but it keeps returning null and crashing.
Any help?