我的数据结构如下:

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 answerthis Firebase blog post,无法通过子字符串匹配进行过滤。

考虑让一个孩子以区域作为键,然后您的查询将起作用:

ref.orderByChild("Area").equalTo("67D");

10-06 04:21