Я довольно новичок в android studio и firebase, и у меня возникают проблемы с получением указанного c значения ключа из базы данных реального времени firebase.
Итак, у меня есть массив пользователей в база данных реального времени firebase, и я хочу выполнить итерацию по всему массиву, но я «перемещаю» итератор один раз каждый раз, когда нажимаю кнопку «Далее» до конца массива.
Это не состояние c, то есть размер массива может измениться.
Когда я перемещаю итератор (когда я нажимаю кнопку), я хочу получить сообщение «status» от база данных реального времени firebase для этого пользователя (при первом нажатии кнопки следующий итератор будет равен 1, и я хочу получить сообщение о состоянии для пользователя, ключ которого равен 1 и т. д.).
Извините, что не будет позвольте мне опубликовать изображение
Ссылка на мою базу данных firebase:
Приведенный ниже код работает, но он всегда возвращает значение «status» последнего пользователя, который присоединился к массиву.
Мой код выглядит так:
next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(current_person < number_of_people_in_the_row){
current_person++;
current_person.setText(String.valueOf(current_person));
final String current_person_string = String.valueOf(current_person );
DatabaseReference user = db.getReference("Redovi").child("Aktivni").child(pin);
user.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot current_user: dataSnapshot.getChildren()){
current_user.child(current_person_string);
for(DataSnapshot current_user_data: current_user.getChildren()){
String current_user_status = current_user_data.child("status").getValue().toString();
Toast.makeText(RedomatAdmin.this, current_user_status, Toast.LENGTH_SHORT).show();
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
}
});