这是我的firebase数据库
我需要按照孩子“总数”的价值订购此列表 我尝试使用此代码
data.child("rating_apps").child("Developing").orderByChild("total").orderByValue().addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
list.add(dataSnapshot.child("name").getValue(String.class));
adapter.notifyDataSetChanged();
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
是否可以通过与父母不相近的值来排序列表?
答案 0 :(得分:1)
Query myTopPostsQuery = databaseReference.child("user-posts").child(myUserId)
.orderByChild("starCount");
myTopPostsQuery.addChildEventListener(new ChildEventListener() {
// TODO: implement the ChildEventListener methods as documented above
// ...
});
答案 1 :(得分:0)
查询中只能有一个orderBy ....您的orderByValue()
会导致Firebase对错误属性的值(密钥为iirc)进行排序。
如果您移除orderByValue()
(因此只有orderByChild("status")
),Firebase将会显示每个孩子的status
属性值。
正如您所指出的,它确实会将这些值排序为字符串,因为您将数值存储为字符串。如果您希望它们按数字排序,请将它们存储为实际数字。