我构建了游戏应用程序,并将记录保存在 FireBase 的实时数据库中。
数据库看看:
{
"Ka8xxTgyFB8yYKH50j" : {
"score" : 10,
"seconds" : 1325
},
"K222xTgyFBF33FD50j" : {
"score" : 10,
"seconds" : 425
},
"Ka32T23R328yYKH50j" : {
"score" : 5,
"seconds" : 115
},
"F323F32FB8yYKH50j" : {
"score" : 30,
"seconds" : 2335
}
}
}
我想从 FireBase 获取按分数排序的数据,然后按秒排序。
本例中数据的正确顺序应该是:
得分:5秒:115
得分:10 秒:425
得分:10秒:1325
得分:30 秒:2335
我如何使用 orderByChild 或其他方式来做到这一点?
谢谢
由于 firebase 不允许多重排序,因此我建议您创建一个排序列并根据您的排序要求更新它。
在您的情况下,您可以连接秒和分数,然后将其存储为整数。为了给它一致的长度,秒必须用 0 填充,比如说 6 个字符(取决于你的分数和秒最大可能值)。
比方说,最大分数是 100,最大秒数是 50000,您的排序顺序将是以下组合score
and 5 chars of seconds
,转换为整数。
Example:
{
"Ka8xxTgyFB8yYKH50j" : {
"score" : 10,
"seconds" : 1325,
"sort_order": 1001325
},
"K222xTgyFBF33FD50j" : {
"score" : 10,
"seconds" : 425,
"sort_order": 1000425
},
"Ka32T23R328yYKH50j" : {
"score" : 5,
"seconds" : 115
"sort_order": 5000115
},
"F323F32FB8yYKH50j" : {
"score" : 30,
"seconds" : 2335,
"sort_order": 3002335
}
}
这样,您可以非常快速地按升序和降序对其进行排序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)