【发布时间】:2018-06-11 09:27:04
【问题描述】:
【问题讨论】:
-
请添加您的数据库结构。
-
到目前为止你尝试了什么?
-
@AnshumanJaiswal,我是 firebase 的新手,我曾尝试使用该查询,但遇到了麻烦
标签: android firebase firebase-realtime-database firebaseui
【问题讨论】:
标签: android firebase firebase-realtime-database firebaseui
正如我在您的数据库中看到的,您将所有这些值存储为字符串而不是数字。当你尝试对字符串排序时,你需要知道字符串是有序的lexicographically。
快速解决此问题的方法是将数据类型从字符串更改为int 或long。所以对于数字,这是正常的顺序:
但是对于字符串,这是正常的顺序:
Firebase 中没有运算符,据我所知,在其他数据库中也没有允许您更改此行为的运算符。相反,您将不得不修改数据以获得您想要的行为。因此,在按字典顺序排序时,按照您需要的顺序存储值。对于数字,您可以通过用零填充它们来实现:
要订购结果,请使用以下代码:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference tableRef = rootRef.child("table");
Query query = tableRef.orderByChild("teamPoints");
query.addListenerForSingleValueEvent(/* ... */);
我错过了,但根据@FrankvanPuffelen 的评论,请参阅帖子,其中解释了您可以颠倒顺序的方式。
【讨论】: