Я пытаюсь войти из своих приложений для Android в базу данных Firebase в реальном времени. после входа я должен получить некоторую информацию о вошедшем в систему пользователе. Но он всегда показывает последнюю (последнюю запись из дерева JSON) информацию о пользователе из дерева JSON.
mDatabase = FirebaseDatabase.getInstance();
users = mDatabase.getReference("tbl_client");
userName = (EditText) findViewById(R.id.userName);
passWord = (TextView) findViewById(R.id.passWord);
login_button = (Button) findViewById(R.id.login_button);
login_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) { signIn(userName.getText().toString(),passWord.getText().toString());
}
});
private void signIn(final String username,final String password){
users.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
for (DataSnapshot user : dataSnapshot.getChildren()) {
User usersBean = user.getValue(User.class);
if (usersBean.password.equals(passWord.getText().toString().trim())) {
Toast.makeText(LoginCardOverlap.this,userBean.getCustomerID(),Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(LoginCardOverlap.this, "Password is wrong", Toast.LENGTH_LONG).show();
}
}
} else {
Toast.makeText(LoginCardOverlap.this, "User not found", Toast.LENGTH_LONG).show();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
userBean.getCustomerID () всегда показывает запись последнего элемента из базы данных в реальном времениДерево JSON. На рисунке изображена структура базы данных: https://gomaxtracker.com/gmx_realtime_database_structure.png