我已经使用 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中存在的currentDateAndTimedatefullNamenik的值?如果这是您想要的,我看不出您使用查询的任何原因。 哦,是吗?,我不知道那是因为我一直在关注一些关于如何使用 startAt 和 endAt 的 youtube 视频,我应该改成什么?,我已经按照你的方式也搜索范围数据***.com/questions/70077152/… 所以你跟着那个,有什么问题? 【参考方案1】:

当您使用适用于 android 的 Firebase-UI 库时,这意味着适配器将能够根据您传入的查询仅显示一个平面对象列表,为每个元素创建一个 ViewHolder 对象。

由于您的实际数据位于 DataPelangganKTP 等节点下方,因此该库并没有真正的帮助。如果您可以像这样更改数据库架构:

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

Quartz:simpleTrigger和cronTrigger触发器的介绍

fb-util 无限滚动中的 $key 问题

如何在 Firebase 数据库中的字符串中进行简单搜索?

ABAP: AT ... ENDAT的使用