在我的 Android 應(yīng)用程序中,我有一個日歷。當(dāng)我單擊一個日期時,我只想顯示該選定日期的項目。換句話說,從適配器中過濾掉所有其他項目RecyclerView,只顯示所選日期的項目。目前,當(dāng)活動打開時,它只顯示所有項目:Query query = FirebaseDatabase.getInstance().getReference().child(FB_SUBJECTS).child(FB_PACKS)PagedList.Config config = new PagedList.Config.Builder() .setEnablePlaceholders(false) .setPrefetchDistance(5) .setPageSize(10) .build();//Initialize FirebasePagingOptionsDatabasePagingOptions<FB_Model> options;options = new DatabasePagingOptions.Builder<FB_Model>() .setLifecycleOwner(this) .setQuery(query, config, snapshot -> { FB_Model model = snapshot.child(FB_PROFILE).getValue(FB_Model.class); addMarkerToCalendarView(getMilliFromDate(model.getstart_date())); return model; }) .build();這將返回 處的所有項目subjects/packs。然后從這個查詢中,我得到一些數(shù)據(jù)<userId>/profile/,比如start_date和end_date,例如subject/packs/001/profile/start_date以下是start_date和的一些示例數(shù)據(jù)end_date:end_date; "05-04-2019"start_date: "01-04-2019"所以,我的問題是我想過濾這些項目,但我正在使用,F(xiàn)irebaseRecyclerPagingAdapter但一次只能拉下一定數(shù)量的項目,例如 20。所以我不能將所有結(jié)果存儲在一個大列表中并過濾它們?nèi)菀椎?。所以我依賴?Firebase 的一些內(nèi)置功能。是否有可能改變我Query來實現(xiàn)這一目標(biāo)?我知道有一個startAt()andendAt()但不確定它們是否適合FirebaseRecyclerPagingAdapter。所以我真正需要的是 SELECT * from profiles where startDate = x and endDate = y;Android 上的實時數(shù)據(jù)庫可能嗎?
1 回答

躍然一笑
TA貢獻1826條經(jīng)驗 獲得超6個贊
是否可以更改我的查詢以實現(xiàn)此目的?
當(dāng)然是,但有一些變化。如我所見,您將日期作為文字字符串存儲在屬性中,這不是end_date
您在Firebase 中處理日期的方式。所以你應(yīng)該將日期存儲為時間戳,它基本上是一個數(shù)字,一個值。
當(dāng)我向 Firebase 實時數(shù)據(jù)庫添加新值時如何保存當(dāng)前日期/時間
最后,只需將所需的時間戳傳遞給startAt()
和endAt()
方法即可。
我知道有一個 startAt() 和 endAt() 但不確定它們是否適合 FirebaseRecyclerPagingAdapter。
您可以傳遞給FirebaseRecyclerPagingAdapter
任何類型的查詢,包括調(diào)用startAt()
和endAt()
方法的查詢。
添加回答
舉報
0/150
提交
取消