java - 子级中的 orderByValue [Firebase 数据库 Android]

标签 java android firebase firebase-realtime-database

这是我的 Firebase 数据库

enter image description here

我需要按子项“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/

相关文章:

ios - Firebase 查询是否可扩展

firebase - 为什么 persistenceEnabled : true result in my queries giving incorrect results?

java - JASIG CAS : How do I change where log files are written to?

java - 如何在 Spring Boot 中升级 Spring 版本

java - 使用 List 对象覆盖 POJO 上的 equals 和 hashCode

java - 项目目标 (Android 5.0.1) 未正确加载

自定义 ArrayAdapter 中的 Android getSystemService

java - 如何在 Java Scene Builder 2.0 中绘制六边形?

android - 使用 javacv 像在 vine 中一样点击进行记录

android - 无法解析符号 - 位图图像压缩并上传到 Firebase