如何查询Firebase的数据集?

How to query in data set of Firebase?

我的数据结构如下:

{
    "node_1" : {
        "node_2": [
            {
                "id": 1,
                "catCode": 1,
                "catName": "cat name",
                "title": "Title 1",
                "description": "description 1"
            },
            {
                "id": 2,
                "catCode": 2,
                "catName": "cat name",
                "title": "Title 2",
                "description": "description 2"
            },
            {
                "id": 3,
                "catCode": 2,
                "catName": "cat name",
                "title": "Title 3",
                "description": "description 3"
            }
        ]
    } 
} 
  1. 如何以仅获取 title 列表的方式在其中进行查询?类似于:["Title 1","Title 2","Title 3"]
  2. 我如何以获取他们 "catCode": 2title 列表的方式查询它?类似于:["Title 2","Title 3"]

Firebase 数据库总是 return 的完整节点。因此,没有单个读取操作 return 只是 node_2 下的 title 个节点。

这意味着也没有查询可以 return 只是具有 catCode == 2 的项目的标题。但是您可以获得整个节点,然后只打印标题:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference("node_1/node_2");
Query items = ref.orderByChild("catCode").equalTo(2);
items.addValueEventListener(new ValueEventListener() {
  public void onDataChange(DataSnapshot dataSnapshot) {
    for (DataSnapshot itemSnapshot: dataSnapshot.getChildren()) {
      Log.i(TAG, itemSnapshot.child("title").getValue(String.class));
    }
  }

  public void onCancelled(DatabaseError databaseError) {
    Log.w(TAG, "loadPost:onCancelled", databaseError.toException());
  }
};