我想使用Java在Android中使用Cloud Firestore将数据从最新到最旧排序

问题描述 投票:0回答:1

我想从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

java android firebase google-cloud-firestore
1个回答
0
投票

为了能够按日期排序结果,应使用以下查询:

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

呼叫:

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

由于您的属性名称为timeStampnot date,因此永远不会起作用。

© www.soinside.com 2019 - 2024. All rights reserved.