OrderByChild () не сортирует мои данные из базы данных - PullRequest
1 голос
/ 19 сентября 2019

Я новичок в firebase, хочу отсортировать данные по отметке времени, а моя база данных ниже, здесь ключ - отметка времени

My database

Мой коддля получения данных ниже

FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("MainDoor");
Query dataOrderedByKey = myRef.orderByChild("{pushId}/key");
dataOrderedByKey.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {

Map<String, MyListData> value = ((HashMap<String, MyListData>) dataSnapshot.getValue());

Здесь я получаю значение не по порядку ключ

Я получаю данные, как показано ниже, которые не в порядке сортировки

Data which I am getting

Ответы [ 3 ]

1 голос
/ 19 сентября 2019

Данные в Map по определению не отсортированы.Поэтому, когда вы вызываете dataSnapshot.getValue(), вся информация о порядке элементов в DataSnapshot является списком.

Для поддержания порядка используйте поддерживаемую структуру данных, такую ​​как список, и извлекайтеотдельные элементы в правильном порядке с циклом DataSnapshot.getChildren().

Так что-то вроде:

dataOrderedByKey.addValueEventListener(new ValueEventListener() {
  @Override
  public void onDataChange(DataSnapshot dataSnapshot) {
    for (DataSnapshot snapshot: dataSnapshot.getChildren()) {
      System.out.println(snapshot.getKey());
      MyListData value = snapshot.getValue()
    }
  }
  ...
0 голосов
/ 19 сентября 2019

Вы хотите отсортировать по дате, верно?Попробуй

   FirebaseDatabase database = FirebaseDatabase.getInstance();
   DatabaseReference myRef = database.getReference("MainDoor");
   myRef.orderByChild('date').addChildEventListener(new ChildEventListener() {
    // implement the ChildEventListener methods as documented above

   });
0 голосов
/ 19 сентября 2019

Также вы можете получить данные из Firebase в отсортированном порядке.См. Мой ответ на Сортировка данных Firebase по возрастанию / убыванию

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...