我已经使用 startAt 和 endAt 来获取范围数据,但我需要在 startAt 内的另一个孩子中获取数据
Posted
技术标签:
【中文标题】我已经使用 startAt 和 endAt 来获取范围数据,但我需要在 startAt 内的另一个孩子中获取数据【英文标题】:i've using startAt and endAt for getting range data, but i need to take data in another child inside the startAt 【发布时间】:2022-01-10 22:34:30 【问题描述】:我想在我的实时数据库的一个文件夹中获取数据,如下所示:
我有这段代码用于获取日期范围数据并将其显示在 RecycleView 中。
DatabaseReference db = FirebaseDatabase.getInstance ( ).getReference ( );
DatabaseReference pendingRef = db.child ("Users").child ("Pending");
Query queryByKey = pendingRef.orderByKey ()
.startAt ("*" + tanggalawal)
.endAt ("*" + tanggalakhir + "\uf8ff");
recView = (RecyclerView)findViewById (R.id.recview);
recView.setLayoutManager (new LinearLayoutManager (this));
FirebaseRecyclerOptions<Model> options =
new FirebaseRecyclerOptions.Builder<Model>()
.setQuery(queryByKey, Model.class)
.build();
adapter = new MyAdapter (options);
recView.setAdapter (adapter);
如何获取其中的 DataPelanggan 数据?
【问题讨论】:
我想在我的实时数据库的文件夹中获取数据哪个? 在 DataPelanggan 中,我会获取 currentDateandTime、date、fullName、nik,但是在我获取数据后,我会将它们放入 recycleview fragmnet 所以你只想获取DataPelanggan中存在的currentDateAndTime
、date
、fullName
和nik
的值?如果这是您想要的,我看不出您使用查询的任何原因。
哦,是吗?,我不知道那是因为我一直在关注一些关于如何使用 startAt 和 endAt 的 youtube 视频,我应该改成什么?,我已经按照你的方式也搜索范围数据***.com/questions/70077152/…
所以你跟着那个,有什么问题?
【参考方案1】:
当您使用适用于 android 的 Firebase-UI 库时,这意味着适配器将能够根据您传入的查询仅显示一个平面对象列表,为每个元素创建一个 ViewHolder 对象。
由于您的实际数据位于 DataPelanggan
、KTP
等节点下方,因此该库并没有真正的帮助。如果您可以像这样更改数据库架构:
Firebase-root
|
--- Pending
|
--- *20211127...
|
--- type: "DataPelanggan" ?
|
--- currentDateAndTime: "*20211127..."
|
--- date: "16/10/1999"
|
--- fullName: "a"
|
--- nik: "4444...."
它会起作用,因为我们已将节点键添加为每个对象下方的字段。通过这种方式,我们删除了架构中的额外级别,您的代码可能保持不变。
【讨论】:
我试图让某种数据库看起来像那样,但我遇到了问题,***.com/questions/70225677/…这就是问题 没有。您是否尝试过我的答案中的解决方案? 好吧,它的工作,但我不能将它们安排成看起来实时数据库 你得到的订单是什么?你想要的顺序是什么?我不明白。 我想让数据库看起来像你的答案,但我需要在里面放更多的子数据,我怎样才能上传/添加数据而不干扰其他文件以上是关于我已经使用 startAt 和 endAt 来获取范围数据,但我需要在 startAt 内的另一个孩子中获取数据的主要内容,如果未能解决你的问题,请参考以下文章
如何将另一个孩子放入 startAt 和 endAt,我试图放入 orderbychild 但它失败了
Firebase Rest Api:如何使用 OrderBy() 和 StartAt() 使用 Last Key id