我的数据结构如下:
Database
Data1 {
Family: "Adam, John, Smith, Bob, Alice"
Age: "12, 23, 6, 5, 8"
Area: "GT6, GT9, GT12"
}
Data2 {
Family: "Tom, Ben, Berry, Hosh, Nico"
Age: "68, 43, 26, 15, 18"
Area: "67D, HG6, DHJD, 453"
}
Data3 {
Family: "Alice, Karan, faser, jenny, kietty"
Age: "14, 10, 15, 17, 5"
Area: "HG6, 67D, DHJD"
}
我只想打印/检索包含例如“ 67D”区域的数据,因此我要打印数据2和3中的所有数据。
如果我的问题不清楚,请告诉我。
我试过了
Query queryRef = ref.orderByChild("Area").equalTo("67D");
queryRef.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot snapshot, String previousChild) {
System.out.println(snapshot.getKey());
}
// ....
});
最佳答案
根据Kato的this SO answer和this Firebase blog post,无法通过子字符串匹配进行过滤。
考虑让一个孩子以区域作为键,然后您的查询将起作用:
ref.orderByChild("Area").equalTo("67D");