Я хочу упорядочить свои данные от самых новых до самых старых, используя Cloud Firestore в Android, используя Java - PullRequest
0 голосов
/ 01 мая 2020

Я хочу отсортировать свои данные от самого старого до самого нового из Cloud Firestore, это мой код:

  private void loadNotesList() {
    firestoreDB.collection("keluhan")
            .get()
            .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                @Override
                public void onComplete(@NonNull Task<QuerySnapshot> task) {
                    if (task.isSuccessful()) {
                        List<keluhanModel> notesList = new ArrayList<>();

                        for (DocumentSnapshot doc : task.getResult()) {
                            keluhanModel note = doc.toObject(keluhanModel.class);
                            note.setId(doc.getId());
                            notesList.add(note);
                        }

                        mAdapter = new adapterKeluhan(notesList, getApplicationContext(), firestoreDB);
                        RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());
                        recyclerView.setLayoutManager(mLayoutManager);
                        recyclerView.setItemAnimator(new DefaultItemAnimator());
                        recyclerView.setAdapter(mAdapter);
                    } else {
                        Log.d(TAG, "Error getting documents: ", task.getException());
                    }
                }
            });
}

Я пытался использовать .orderBy ("date", Query.Direction.ASCENDING), но это ничего не делал, просто белая страница в моем приложении Android.

Это моя база данных:

screenshot database

1 Ответ

1 голос
/ 01 мая 2020

Чтобы упорядочить результаты по дате, вы должны использовать следующий запрос:

FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference keluhanRef = rootRef.collection("keluhan");
Query dateQuery = keluhanRef.orderBy("timeStamp", Direction.ASCENDING);
dateQuery.get().addOnCompleteListener(/* ... */);

Вызов:

.orderBy("date", Query.Direction.ASCENDING)

Никогда не будет работать, так как имя вашей собственности timeStamp и не date.

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