我想从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应用程序中的白页。
这是我的数据库:
为了能够按日期排序结果,应使用以下查询:
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
和not date
,因此永远不会起作用。