У меня небольшая проблема, каждый раз, когда я хочу установить новое значение для желаемого пользователя под моим adminUID, я не знаю, как установить значение для этого текущего пользователя, так как у меня нет UID этого пользователя
Структура базы данных
Я могу привести в свое приложение пользователей, у которых pregunta 1 или 0, и включить переключатель или нет, это правильно
Но мне нужно, когда я нажимаю переключатель, чтобы изменить это значение с 0, если pregunta = 1, или на 1, если pregunta = 0. Мне удалось это сделать в своем адаптере
holder.mSwitch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (modelArrayList.get(position).getPregunta()==1){
mDatabase.child("myapp").child(adminID).child("users").child(userID).setValue(0);
}else if (modelArrayList.get(position).getPregunta()==0){
mDatabase.child("myapp").child(adminID).child("users").child(userID).setValue(0);
}
}
});
Теперь я хочу получить .child(userID), где я нажимаю переключатель, чтобы обновить этого конкретного пользователя.
Редактировать:
Мне в голову пришла эта идея
for(DataSnapshot snapshot : dataSnapshot.getChildren()){
String key = snapshot.getKey();
UserModel userModel = snapshot.getValue(UserModel.class);
String nombrePaciente = userModel.getNombre();
if (nombrePaciente.equals(modelArrayList.get(position).getNombre())){
mDatabase.child("myapp").child(adminID).child("users").child(key).child("pregunta").setValue(0);
}
}
он работает, но если у меня есть 2 пользователя с одинаковым именем, он изменит его для двоих из них, я думал, что внутри каждого пользователя есть свой собственный идентификатор пользователя и сравнивал этот uid с UID ключа этого пользователя, который выполнит свою работу, но, есть ли эффективный способ сделать это?
Благодарность
Решено
Сохранял uid каждого пользователя, когда я создавал их в своем модельном массиве, а затем просто сравнивал его
for(DataSnapshot snapshot : dataSnapshot.getChildren()){
String key = snapshot.getKey();
if (key.equals(modelArrayList.get(position).getUid())){
mDatabase.child("myApp").child(adminID).child("users").child(key).child("pregunta").setValue(0);
}
}