我想通过使用数据库中使用的分数来获取用户排名。我有数据库:
scores-> uid - >得分
在图片中,我想按降序对得分数据进行排序,为其分配排名(1为最高得分者排名,2为第二等等),并检索当前用户的排名。
我找到了有助于对用户进行排序的解决方案,但如何设置排名并找到当前用户的排名就是问题。
private void getHighestScore() {
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference().child("users");
Query query = databaseReference.orderByChild("score").limitToLast(1);
query.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
userlist = new ArrayList<String>();
for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
User score = postSnapshot.getValue(User.class);
Log.d("test", " values is " + score.getName() + " " + score.getScore());
userlist.add(score.getScore()+user.getName());
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
以上代码已用于以排序方式将数据添加到列表中。问题是如何在应用程序中设置当前用户的排名