这是我的数据库结构:
- Feed
_ Parent key 1:
- key 1:
_ time_stamp: 3
- key 2:
_ time_stamp: 4
_ Parent key 2:
- key 1:
_ time_stamp: 2
- key 2:
_ time_stamp: 1
我的问题是当我使用
Query query = mFeed.child(parent).orderByChild("time_stamp")
我得到的是time_stamp仅按该顺序在该父键上排序
3-4-1-2
我要获得的订单是这样:
1-2-3-4
请帮助!!!
答案 0 :(得分:0)
您需要了解,当您对Firebase数据库进行查询时,可能会有多个结果。因此快照包含一个结果列表。
您可以使用这样的代码来执行所需的操作:
mFeed.orderByChild("time_stamp").limitToLast(4).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
for (DataSnapshot childSnapshot: dataSnapshot.getChildren()) {
String res = childSnapshot.getValue().toString().trim();
// do what you want by adding them to arraylist or something
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
throw databaseError.toException(); // do something for errors
}
});
此外,您不一定总是需要从Firebase获取列表,而是可以在检索后根据需要对其进行排序。