android-Firebase实时数据库orderByChild无效

时间:2018-06-08 16:45:51

标签: android firebase firebase-realtime-database

我按照文档做了一切,但不知道为什么我没有得到有序数据

我的查询

 typeRef = myRef.child("DiscussionRooms").orderByChild("order");
     valueEventListener = typeRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            if (dataSnapshot.getValue() != null) {

                Log.d(TAG, "Get Data" + dataSnapshot.getValue().toString());

            }

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

我的数据库

enter image description here

我的数据库规则

enter image description here

响应日志

enter image description here

1 个答案:

答案 0 :(得分:2)

要显示根据order属性订购的数据,请使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference discussionRoomsRef = rootRef.child("DiscussionRooms");
Query query = discussionRoomsRef.orderByChild("order");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String name = ds.child("name").getValue(String.class);
            Log.d("TAG", name);
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
query.addListenerForSingleValueEvent(valueEventListener);