【发布时间】:2019-02-01 19:13:15
【问题描述】:
{
"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"
}
}
这是我的数据库。我想让所有用户都使用相同的变量x。但我只想要 id,即父节点。我基本上想构建一个数组,其中包含子值 variablex 相同的用户的所有 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());
}
这是通过按钮触发的,但每次它都会崩溃。我也有三个具有相同变量的用户。结构是一样的,这是我的数据库的一个有点过时的版本,但它本质上是一样的。
【问题讨论】:
-
分享您的崩溃报告。
-
如果您的
dataSnapshot.getKey()返回您的列表,那么users.getKey()应该返回您Mp6FLLdcSeXpfGPwP5i0ZBNZxd63。 -
我无法在 android studio 上运行它,我正在设备上运行它,但我无法获得崩溃报告。我还需要一个符合查询条件的所有 id 的列表,而不仅仅是第一个。所以我可以得到第二个和第三个等等。
-
@MikeKioulMikeKioulepoglou 你说你想让所有用户使用相同的变量x,即
one name?请回复@。 -
对不起,我提到过,我的实际 firebase 数据库在相同的结构中有更多的用户,具有相同的孩子,只是每个孩子的值不同,每个孩子的 id 不同。其中一些在子变量 x 中具有相同的值。我想得到那些。我刚刚发布了这部分数据库作为示例。
标签: java android arrays firebase firebase-realtime-database