簡體   English   中英

在從 Firestore 檢索數據之后但在填充 recyclerview 之前進行排序

[英]Sort after retrieving data from Firestore but before populating recyclerview

問題:

我將事件(想想日歷事件)存儲在 Firestore 中,並將時間存儲為字符串,因為 Firestore 中的時間戳似乎是別的東西。 前任。 上午 10:00、晚上 10:00 等。我想在我的RecyclerView中按時間排序顯示這些事件。

是否可以在填充RecyclerView之前對它們進行排序? 我嘗試在網上尋找並沒有找到任何東西,也不知道如何解決這個問題。

我正在使用 FirebaseUI,我猜這必須發生在適配器的某個地方

Query query = firebaseFirestore.collection(year).whereIn("location", "Park").orderBy("time", Query.Direction.ASCENDING);
                    //Recycler options
                    FirestoreRecyclerOptions < EventModel > options = new FirestoreRecyclerOptions.Builder < EventModel > ()
                            .setQuery(query, EventModel.class)
                            .build();

                    eventAdapter = new EventAdapter(options);
                    mFirestoreList.setAdapter(eventAdapter);
                    eventAdapter.startListening();
                    eventAdapter.notifyDataSetChanged();

如果您想在查詢 Firestore 數據庫時獲得准確的結果,您應該使用 java日期或 Firestore 時間戳object,但絕對不能使用字符串。 我是說,因為 String 對象的排序方式是按字典順序排列的,因此您將獲得的結果不會有太大幫助。

為了能夠添加時間戳值,您可以使用我的以下答案中的解決方案:

ServerTimestamp 在 Firebase Firestore 上始終為 null

您實際使用的查詢不應更改,它將按現在的方式工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM