【问题标题】:How to retrieve data from bottom to top from Firebase database in recyclerview or how to add data at the top of database in Firebase?如何在 recyclerview 中从 Firebase 数据库从下到上检索数据或如何在 Firebase 中的数据库顶部添加数据?
【发布时间】:2020-04-14 22:02:50
【问题描述】:

我正在使用 Firebase 数据库开发应用程序。我正在接收数据并上传它没有问题,但我想将我的数据添加到数据库数组的顶部,而不是数据库数组的底部。

所以建议我一些可以帮助我从底部到顶部检索数据的方法,或者我可以将其上传到我的数据库数组的顶部。提前致谢。请帮帮我。

【问题讨论】:

  • StackOverflow 并不是为您提供有效的代码。到目前为止,您尝试过什么?
  • 我用 FirebaseRecyclerAdapter 尝试了 notifyItemInserted(0); 但没有工作

标签: android firebase firebase-realtime-database


【解决方案1】:

有几种方法可以做到这一点。

第一:

实现FirebaseUI,然后执行以下操作:

LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
layoutManager.setReverseLayout(true);
layoutManager.setStackFromEnd(true);
recyclerView.setLayoutManager(layoutManager)

第二:

我更喜欢这种方式,特别是如果您计划在未来实现 GridLayoutManager。注意,GridLayoutManager 不支持setStackFromEnd();。下面将允许您反转 `AdapterView 中的任何数据。

在你的 RecyclerViewAdapter 中

@Override
public Item getItem(int pos) {
return super.getItem(getCount() - 1 - pos);
}

【讨论】:

  • 是的,我使用 GridLayoutManagerFirebaseRecyclerAdapter 。你能解释一下如何输入这个代码吗???以及如何声明Item。我是 android firebase 的新手...!!
  • 如果您的原始帖子没有您的代码,这真的是不可能的。您是否至少显示来自 Firebase 的数据,您只需要以相反的顺序显示数据?
  • 我只是想反转数据。
  • 我只想在第一个位置检索最后添加的数据,然后是倒数第二个,依此类推。
  • 我仍然无法理解...您是否已经从 Firebase 获取数据并且只想反转它,因为这就是您的原始帖子听起来的样子。或者您还没有检索数据?如果您还没有检索数据,那么您应该参考these 关于“如何从 firebase 获取数据”的帖子之一。这篇文章回答了您关于如何按降序获取 Firebase 数据的原始问题,所以如果您有机会,请接受它。
【解决方案2】:

这很容易。像这样使用 firebase 查询:

Query dbRef = FirebaseDatabase.instance.reference().child("Post")
                .orderByKey()
                .limitToLast(5)
                .endAt(endKey);

结束键是数据的最后一个结尾。这是检索数据停止的最后一个键。检索前五个项目后,您可以获得一个新的endKey 并传递结束键。它从上到下检索数据。

【讨论】:

    猜你喜欢
    • 2021-10-01
    • 2016-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多