{
"Mp6FLLdcSeXpfGPwP5i0ZBNZxd63" : {
"Age" : "20",
"Full name" : "Mike",
"Intent" : "Both",
"Reward" : "Nothing ",
"Variablex" : "one name",
"imageuri" : "images/Mp6FLLdcSeXpfGPwP5i0ZBNZxd63.jpeg"
},
"fWJcCPF16dUMKn1Sxz01VjF9Kgq2" : {
"Age" : "19",
"Full name" : "Other guy",
"Intent" : "Looking for help",
"Reward" : "nothing ",
"Variablex" : "one name",
"imageuri" : "images/fWJcCPF16dUMKn1Sxz01VjF9Kgq2"
}
}
这是我的数据库。我想让所有用户具有相同的variablex。但是我只想要ID,父节点。我基本上想建立一个数组,其中包含其子值variablex相同的用户的所有id。然后使用此数组一次调用一个用户以获取ID,并使用ID执行其他任务。
public void othershit() {
Query qname3 = mDatabase.child("Variablex").orderByChild("Variablex").equalTo(userinput);
qname3.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
GenericTypeIndicator<List<String>> t = new GenericTypeIndicator<>();
List users = dataSnapshot.getValue(t);
textView8.setText(users.get(0).toString());
}
使用按钮触发该事件,但每次崩溃时。我也有三个用户具有相同的variablex。结构是相同的,这是我的数据库有点过时的版本,但是本质上是相同的。
答案 0 :(得分:0)
尝试使用
this.service.data().subscribe(
data => {
this.params = JSON.parse(JSON.stringify(data));
this.originalParams = JSON.parse(JSON.stringify(data));
}
);
要检索找到的节点(在您的情况下为FUID)的父键。
编辑-
假设所有数据的父节点都是用户
dataSnapshot.getKey();
因此,您需要执行以下操作以获取与所需的所有ID匹配的所有ID的列表
{
"users" :{
"Mp6FLLdcSeXpfGPwP5i0ZBNZxd63" : {
"Age" : "20",
"Full name" : "Mike",
"Intent" : "Both",
"Reward" : "Nothing ",
"Variablex" : "one name",
"imageuri" : "images/Mp6FLLdcSeXpfGPwP5i0ZBNZxd63.jpeg"
},
"fWJcCPF16dUMKn1Sxz01VjF9Kgq2" : {
"Age" : "19",
"Full name" : "Other guy",
"Intent" : "Looking for help",
"Reward" : "nothing ",
"Variablex" : "one name",
"imageuri" : "images/fWJcCPF16dUMKn1Sxz01VjF9Kgq2"
}
}
}