Как получить каждый UID, откуда я нажимаю

У меня небольшая проблема, каждый раз, когда я хочу установить новое значение для желаемого пользователя под моим adminUID, я не знаю, как установить значение для этого текущего пользователя, так как у меня нет UID этого пользователя

Структура базы данных

Как получить каждый UID, откуда я нажимаю

Я могу привести в свое приложение пользователей, у которых pregunta 1 или 0, и включить переключатель или нет, это правильно

Как получить каждый UID, откуда я нажимаю

Но мне нужно, когда я нажимаю переключатель, чтобы изменить это значение с 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 ключа этого пользователя, который выполнит свою работу, но, есть ли эффективный способ сделать это?

Благодарность

0
0
36
1

Ответы 1

Решено

Сохранял 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);

                               }

                           }

Другие вопросы по теме