Java 子[Firebase数据库Android]中的orderByValue

Java 子[Firebase数据库Android]中的orderByValue,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,这是我的firebase数据库 我需要按子项“total”的值排列此列表 我尝试使用这个代码 data.child("rating_apps").child("Developing").orderByChild("total").orderByValue().addChildEventListener(new ChildEventListener() { @Override public void onChildAdded(DataSnapsho

这是我的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) {

            }
        });

是否可以按与父项不接近的值对列表进行排序?

您只能有一个orderBy。。。在查询中。您的
orderByValue()
导致Firebase根据错误属性(键iirc)的值进行排序

Query myTopPostsQuery = databaseReference.child("user-posts").child(myUserId)
        .orderByChild("starCount");
myTopPostsQuery.addChildEventListener(new ChildEventListener() {
    // TODO: implement the ChildEventListener methods as documented above
    // ...
});
如果删除
orderByValue()
(因此只有
orderByChild(“status”)
),Firebase将根据每个子项的
status
属性的值进行设置


正如您所指出的,它确实会将这些值作为字符串进行排序,因为您将数值存储为字符串。如果要按数字排序,请将其存储为实际数字。

您只能有一个orderBy。。。在查询中。您的
orderByValue()
导致Firebase根据错误属性(键iirc)的值进行排序

如果删除
orderByValue()
(因此只有
orderByChild(“status”)
),Firebase将根据每个子项的
status
属性的值进行设置


正如您所指出的,它确实会将这些值作为字符串进行排序,因为您将数值存储为字符串。如果要按数字排序,请将其存储为实际数字。

查询中只能有一个
orderBy…
。如果删除
.orderByValue()
它将按
total
属性的值排序。@FrankvanPuffelen否。如果删除
orderByValue()
,它将按字母排序,而不是按数字。当添加
orderByValue()
时,它将按错误属性的值排序。只需使用
orderByChild(“status”)
即可根据
status
属性的值进行排序。它确实会将这些值排序为字符串,因为您将数值存储为字符串。如果要按数字排序,请将其存储为实际数字。查询中只能有一个
orderBy…
。如果删除
.orderByValue()
它将按
total
属性的值排序。@FrankvanPuffelen否。如果删除
orderByValue()
,它将按字母排序,而不是按数字。当添加
orderByValue()
时,它将按错误属性的值排序。只需使用
orderByChild(“status”)
即可根据
status
属性的值进行排序。它确实会将这些值排序为字符串,因为您将数值存储为字符串。如果你想让它们按数字排序,就把它们存储为实际的数字。这和我的代码没有区别。此代码不是按子项“total”的值对列表排序。此代码与我的代码之间没有区别。此代码未按子项“total”的值对列表排序