这是我的 Firebase 数据库
我需要按子项“total”的值对该列表进行排序 我尝试使用这段代码
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) {
}
});
是否可以按与 parent 不相近的值对列表进行排序?
最佳答案
在一个查询中只能有一个 orderBy...。您的 orderByValue()
导致 Firebase 对错误属性(键 iirc)的值进行排序。
如果您删除 orderByValue()
(因此只有 orderByChild("status")
),Firebase 将使用 status
的值> 每个 child 的属性(property)。
正如您所指出的,它确实会将这些值作为字符串进行排序,因为您将数值存储为字符串。如果您希望它们按数字排序,请将它们存储为实际数字。
关于java - 子级中的 orderByValue [Firebase 数据库 Android],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48210699/