android - 如何从我单击的位置获取每个 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 进行比较,即会做这项工作,但是,有没有一种有效的方法来做到这一点?
谢谢
解决方案
解决了
当我在模型数组中创建每个用户时存储了每个用户的 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);
}
}