Я пытаюсь получить данные из firebase и setText в TextViews, но это не работает. Я пробовал разные методы. Я не получаю ошибки, строки не являются нулевыми, но текст не отображается. Я использовал эти методы и в других проектах, и они работали. Что я делаю неправильно?
Вот код:
drawerLayout = findViewById(R.id.drawer_layout);
NavigationView navigationView = findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
View headerView = navigationView.getHeaderView(0);
navUsername = headerView.findViewById(R.id.navUsername);
navEmail = headerView.findViewById(R.id.navEmail);
ActionBarDrawerToggle toogle = new ActionBarDrawerToggle(this, drawerLayout, toolbar,
R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawerLayout.addDrawerListener(toogle);
toogle.setDrawerIndicatorEnabled(true);
toogle.syncState();
if(savedInstanceState == null) {
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new ArtFragment()).commit();
navigationView.setCheckedItem(R.id.nav_art);
}
auth = FirebaseAuth.getInstance();
currentUser = auth.getCurrentUser();
String uid = currentUser.getUid();
refUsername = FirebaseDatabase.getInstance().getReference().child("users").child(uid);
refUsername.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
User user = dataSnapshot.getValue(User.class);
navUsername.setText(user.getUsername());
navEmail.setText(user.getEmail());
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
Пример Firebase JSON:
users
uid
email: ""
password:""
username:""
Это User.class:
public class User {
String username, email, password;
public User(String username, String email, String password){
this.username = username;
this.email = email;
this.password = password;
}
public User(){}
public void setUsername(){
this.username = username;
}
public String getUsername(){
return username;
}
public void setEmail(){
this.email = email;
}
public String getEmail(){
return email;
}
public void setPassword(){
this.password = password;
}
public String getPassword(){
return password;
}
}