如何查询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"
}
]
}
}
- 如何以仅获取
title
列表的方式在其中进行查询?类似于:["Title 1","Title 2","Title 3"]
- 我如何以获取他们
"catCode": 2
的 title
列表的方式查询它?类似于:["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());
}
};
我的数据结构如下:
{
"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"
}
]
}
}
- 如何以仅获取
title
列表的方式在其中进行查询?类似于:["Title 1","Title 2","Title 3"]
- 我如何以获取他们
"catCode": 2
的title
列表的方式查询它?类似于:["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());
}
};