has*_*s19 2 android firebase firebase-realtime-database
这是我的firebase的屏幕截图:
我试图在firebase数据库中检索最高的100分我使用此代码将新节点添加到firebase:
Map<String, String> post1 = new HashMap<String, String>();
post1.put("name",name);
post1.put("score",score);
myRef.push().setValue(post1);
Run Code Online (Sandbox Code Playgroud)
这是我用来检索最高100分不起作用的代码(代码有效,但它没有检索到最高的100分)
Query queryRef = myRef.orderByChild("score").limitToFirst(100);
queryRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) {
Score score=postSnapshot.getValue(Score.class);
Log.d("test"," values is " + score.getName() + " " + score.getScore());
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Run Code Online (Sandbox Code Playgroud)
Firebase查询始终按升序排列.所以你需要得到最后的 100,而不是前100.
Query queryRef = myRef.orderByChild("score").limitToLast(100);
Run Code Online (Sandbox Code Playgroud)
然后客户端你需要反转项目.
或者,您可以为项目添加倒置属性invertedScore: -99.如果你这样做,你可以按倒数排序,而不必反转数组.
之前经常涉及此方案.我强烈建议你研究其中一些:
| 归档时间: |
|
| 查看次数: |
4232 次 |
| 最近记录: |