Сортировка пожарной базы - PullRequest
0 голосов
/ 20 мая 2018

Снимок базы данных

Это моя база данных пожарной базы (изображение прилагается по ссылке).Я хочу отсортировать все это по дате.Как вы можете видеть на картинке, я сделал переменную даты.Таким образом, для даты «20 мая 2018 года» переменная даты имеет значение «20180520».Следовательно, сортировка данных по целочисленному значению даты сделает работу.Код, который я использовал для отображения этих данных:

    DatabaseReference mDatabase= FirebaseDatabase.getInstance().getReference();
    mDatabase.addValueEventListener(new ValueEventListener()
    {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            map = (Map<String, Object>) dataSnapshot.getValue();

            itr = map.entrySet().iterator();

            entry = itr.next();


            Map singleUser = (Map) entry.getValue();

            String name=(String) singleUser.get("name");
            String d=(String) singleUser.get("sdate");
            String m=(String) singleUser.get("smon");
            String y=(String) singleUser.get("syear");
            String Submi=(String) singleUser.get("subm");

Теперь я хочу, чтобы этот код обрабатывался таким образом, чтобы данные отображались в порядке возрастания даты.Как я могу отсортировать пожарную базу?И если это невозможно, как я могу отсортировать карту (String, Object) по Object.date?

Пожалуйста, помогите

Ответы [ 2 ]

0 голосов
/ 21 мая 2018

Если вы хотите упорядочить элементы базы данных по дате, вы должны сохранить дату как ServerValue.TIMESTAMP, как объяснено здесь , а не как число, как я вижу на вашем скриншоте.

Таким образом, ServerValue.TIMESTAMP - это просто токен, который сервер понимает и переводит в число, которое является текущим временем с использованием его собственных часов.

Если вы пытаетесь сохранить дату какчисла или строки в базе данных реального времени, нет.Это не очень хорошее решение.

0 голосов
/ 20 мая 2018

Вы можете сортировать полученные данные с сервера.Пожалуйста, взгляните на эту часть документации - Упорядочение по указанному дочернему ключу .

В вашем случае это будет выглядеть примерно так:

final DatabaseReference usersRef = database.getReference("users");
usersRef.orderByChild("date").addValueEventListener(new ValueEventListener() {
     @Override
     public void onDataChange(DataSnapshot dataSnapshot) {            
     //Your code goes here... 
        }
     }

     @Override
     public void onCancelled(DatabaseError databaseError) {}});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...