如何从我点击的位置获取每个UID

时间:2018-10-02 16:13:14

标签: android firebase firebase-realtime-database

我有一个小问题,每次我想在adminUID下为所需用户设置新值时,我都不知道如何为该当前用户设置值,因为我没有该用户的UID

数据库结构

enter image description here

我可以将pregunta为1或0的用户带到我的应用中,然后启用或禁用开关,没错

enter image description here

但是,当我单击开关时,如果pregunta = 1,则需要将该值从0更改为;如果pregunta = 0,则需要将该值更改为1。我设法在适配器中做到了这一点

  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);

                               }

                           }

它正在工作,但是如果我有两个具有相同名称的用户,它将为其中两个修改它,我想在每个用户内部存储自己的用户ID,并将该uid与该键的UID进行比较用户,就可以完成工作,但是有没有一种有效的方法来做到这一点

谢谢

1 个答案:

答案 0 :(得分:0)

已解决

当我在模型数组中创建每个用户的uid时将其存储,然后进行比较

!=