Сортировка узлов, используя метку времени другого ключевого родителя - PullRequest
0 голосов
/ 29 декабря 2018

Это моя структура базы данных:

- Feed
       _ Parent key 1:
                - key 1:
                        _ time_stamp: 3
                - key 2:
                        _ time_stamp: 4
       _ Parent key 2:
                - key 1:
                        _ time_stamp: 2
                - key 2:
                        _ time_stamp: 1

Моя проблема в том, что когда я использую

Query query = mFeed.child(parent).orderByChild("time_stamp")

, я получаю только упорядочение time_stamp тамродительский ключ как этот порядок

3 - 4 - 1 - 2

Порядок, который я хочу получить, следующий:

1 - 2 - 3 - 4

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

1 Ответ

0 голосов
/ 29 декабря 2018

Вы должны понимать, что когда вы делаете запрос к базе данных Firebase, потенциально может быть несколько результатов.Таким образом, снимок содержит список из одного результата.

У вас может быть такой код, чтобы делать то, что вы хотите:

mFeed.orderByChild("time_stamp").limitToLast(4).addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        if (dataSnapshot.exists()) {
            for (DataSnapshot childSnapshot: dataSnapshot.getChildren()) {
                String res = childSnapshot.getValue().toString().trim();
                // do what you want by adding them to arraylist or something
            }
        } 
    }
    @Override
    public void onCancelled(DatabaseError databaseError) {
        throw databaseError.toException(); // do something for errors
    }
});

Кроме того, вам не всегда нужно получатьсписок из Firebase в том порядке, в котором вы хотите, вы можете упорядочить их после получения.

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