android-Firebase 实时数据库 orderByChild 不起作用

Ano*_*ous 3 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) {

        }
    });
Run Code Online (Sandbox Code Playgroud)

我的数据库

在此处输入图片说明

我的数据库规则

在此处输入图片说明

响应日志

在此处输入图片说明

Ale*_*amo 6

要显示按order属性排序的数据,请使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference discussionRoomsRef = rootRef.child("DiscussionRooms");
Query orderQuery = 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) {
        Log.d("TAG", task.getException().getMessage()); //Don't ignore potential errors!
    }
};
orderQuery.addListenerForSingleValueEvent(valueEventListener);
Run Code Online (Sandbox Code Playgroud)