Итак, когда я запускаю свое приложение, и я вхожу в систему, имя и адрес электронной почты текущего пользователя отображаются в навигационном ящике, но когда я выхожу из системы и вхожу в систему с другим пользователем, детали остаются то же самое из предыдущего пользователя, данные извлекаются из базы данных, но не меняются при следующем входе в систему.Невозможно изменить данные пользователя
Я попытался проверить, существует ли пользователь, используя getUid
. но всякий раз, когда я использую этот фрагмент кода в любом месте, он дает мне исключение с нулевым указателем. Как это разрешить?
Высокую оценку
код следующим образом:
public void pushToNavHeader(){
mRef = FirebaseDatabase.getInstance().getReference();
mRef.child("Users").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
for (DataSnapshot data : dataSnapshot.getChildren()) {
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
View v = navigationView.getHeaderView(0);
TextView nName = (TextView) v.findViewById(R.id.textView4);
TextView nEmail = (TextView) v.findViewById(R.id.textView);
nName.setText("");
nEmail.setText("");
Users user = data.getValue(Users.class);
name = user.getName();
email = user.getEmail();
nName.setText(name);
nEmail.setText(email);
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
{
"Users" :
{
"7wWFORCN8NMHoihSJeGs7pBWakt1" :
{
"email" : "[email protected]",
"name" : "ben"
},
"FYcpquwFVfTrIPsXda82BSb2vpr1" :
{
"email" : "[email protected]",
"name" : "neesan"
}
}
}
Пользователи класса
public class Users {
private String name;
private String email;
private String password;
public Users(){
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public String getEmail(){
return email;
}
public void setEmail(String email){
this.email = email;
}
}
Пожалуйста, вставьте свой код в виде текста. Никогда не используйте скриншот для своего кода: http://meta.stackoverflow.com/questions/303812/discourage-screenshots-of-code-and-or-errors Пожалуйста, также подумайте о том, чтобы прочитать [ask] или взять [tour] – Mat
Лучше. Очистка комментариев. –