Hey Ich möchte Zeit in Firebase-Datenbank als String in aufsteigender Reihenfolge gespeichert und in einer Liste anzeigen. Ich habe Lösungen zur Sortierung ganzzahliger Werte gefunden. Android: Sortierzeit in Firebase-Datenbank in aufsteigender Reihenfolge gespeichert
Dies ist meine Datenbank, wo ich nach der timeTaken von jeder Benutzer-ID bei dieser spezifischen Frage ID sortieren möchte. Edit: Also meine Frage ist, wie kann ich die Daten von jedem Benutzer uid dieser spezifischen Zeit auf der Frage Frage ID (hier: 982906) abrufen und sortieren diese Liste, um herauszufinden, wer das Problem in kürzester Zeit gelöst hat.
private void getTimeTaken() {
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference().child("users");
Query query = databaseReference.orderByChild("questions").startAt("982906");
query.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
yourTimeArraylist = new ArrayList<>();
for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
UserPuzzleDetails userPuzzleDetails = postSnapshot.getValue(UserPuzzleDetails.class);
yourTimeArraylist.add(new UserPuzzleDetails(userPuzzleDetails.getYourAnswer(), userPuzzleDetails.getAnswerScore(), userPuzzleDetails.getTimeTaken()));
Log.e("", " " + userPuzzleDetails.getTimeTaken());
}
for (int i = 0; i < yourTimeArraylist.size(); i++) {
UserPuzzleDetails user = yourTimeArraylist.get(i);
Log.d("test your rank", " onDataChange: " + user.getTimeTaken() + " " + user.getAnswerScore());
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
Ich habe die Werte der Zeit in der Datenbank als int in Millisekunden geändert, aber ich bin nicht in der Lage zu verstehen, wie die Werte der Frage ID 982906 Acording genommen zu der Zeit, zu sortieren. Ich habe die obige Methode ausprobiert, die immer 0 zurückgibt.
Es sieht aus wie Ihre Zeiten schon sortierbar sind. Hattest du Probleme, es zu implementieren? Wenn ja, teile bitte den [minimalen Code, der das Problem reproduziert] (http://stackoverflow.com/help/mcve). –
Es wird viel einfacher sein, wenn Sie Dinge wie Zeiten und Dauern als Integer-Wert statt als Anzeigetext-String speichern. Es wird das Sortieren einfacher machen. Wenn Sie die Uhrzeit anzeigen müssen, formatieren Sie sie auf dem Client mit dem Ganzzahlwert. –
@FrankvanPuffelen Ich habe einen Code hinzugefügt. Es gibt Nullwerte zurück. Bitte überprüfen Sie –