首页 > 解决方案 > 如何从我单击的位置获取每个 UID

问题描述

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

数据库结构

在此处输入图像描述

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

在此处输入图像描述

但是,当我单击开关时,我需要将该值从 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);

                               }

                           }

它正在工作,但是如果我有 2 个同名用户,它将为他们两个修改它,我想在每个用户内部存储他们自己的用户 ID,并将该 uid 与该用户的密钥的 UID 进行比较,即会做这项工作,但是,有没有一种有效的方法来做到这一点

谢谢

标签: androidfirebasefirebase-realtime-database

解决方案


解决了

当我在模型数组中创建每个用户时存储了每个用户的 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);

                               }

                           }

推荐阅读