我是Firebase的新手,这是我第一个使用Firebase的应用。 我的应用程序有15个不同的分数,我用Spinner分开它们。每次选择不同的分数时,都应重新分类。 它有效,它总是显示正确的分数但不是有序的。
数据库:
我的代码:
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
我也尝试使用它
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
那么我忽略了什么? 非常感谢