Android上的Firebase数据库 - orderByChild无效

时间:2017-10-20 17:52:54

标签: java android firebase firebase-realtime-database

我是Firebase的新手,这是我第一个使用Firebase的应用。 我的应用程序有15个不同的分数,我用Spinner分开它们。每次选择不同的分数时,都应重新分类。 它有效,它总是显示正确的分数但不是有序的。

数据库:

database structure

我的代码:

FirebaseDatabase database;
DatabaseReference databaseReference;
Query myQuery;


database = FirebaseDatabase.getInstance();
databaseReference = database.getReference().getRef().child("Users");

for (int i = 0; i < spinner.getCount(); i++) {
    int x = i+1;
    if (i == spinner.getSelectedItemPosition()) {
        prefsEdit.putInt("selectedScore", x).apply(); 
        myQuery = databaseReference.orderByChild("score"+possibleScores.get(i)); 
        downloadScores();
        break;
    }
}


public void downloadScores() {
    myQuery.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            users.clear();
            for (DataSnapshot post : dataSnapshot.getChildren()) {
                Users user = post.getValue(Users.class);
                users.add(user);
            }
            UsersList scoreAdapter = new UsersList(HighscoreActivity.this, users);
            scoreList.setAdapter(scoreAdapter);
            }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });
}

这就是我的结果。例如得分6

screenshot

我也尝试使用它

myQuery = databaseReference.child(firebaseAuth.getUid()).child("highscores").orderByChild("score"+possibleScores.get(i));

并收到此错误:

com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.Long to type com.example.user.app.Users

那么我忽略了什么? 非常感谢

0 个答案:

没有答案