Как получить каждый UID, откуда я нажимаю - PullRequest
0 голосов
/ 02 октября 2018

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

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

enter image description here

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

enter image description here

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

спасибо

1 Ответ

0 голосов
/ 02 октября 2018

решено

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

                               }

                           }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...