【问题标题】:Firebase Realtime Database Android: How to Display Data, Parts at a timeFirebase 实时数据库 Android:如何一次显示数据和部分
【发布时间】:2020-04-09 19:01:50
【问题描述】:

我需要一些帮助来让 Firebase 数据库显示来自实时数据库的一些信息。

我正在使用 Firebase Query 通过 limitToLast(30) 在列表视图中显示最后 30 个项目。

但是,我想显示所有数据。我知道加载太多会导致系统变慢,这就是为什么 30 是最佳的。

有没有办法设置它,这样当我向下滚动时,它会隐藏最上面的那些,或者有某种页面,当他们转到下一页时,它会显示接下来的 30 个帖子。

我的代码:

String userID = user.getUid();
        databaseReference.child(userID).addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                for (DataSnapshot data : dataSnapshot.getChildren()){
                    Author author = data.getValue(Author.class);
                    authorList.add(author);
                }
                Layout_Saved_Quotes savedQuotes = new Layout_Saved_Quotes(Show_Saved_Quotes.this, authorList);
                list.setAdapter(savedQuotes);
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });

Query databaseReference; databaseReference = FirebaseDatabase.getInstance().getReference().limitToLast(30);

【问题讨论】:

  • 您正在寻求实现“分页”,这可以说是使用RecyclerView 实现的最佳方式。在您的搜索中使用这两个术语应该会引导您走上正确的道路。
  • 这个blog post 涵盖了您应该需要的一切。您只需将 .startAt(...).limitToFirst(...) 更改为 .endAt(...).limitToLast(...) 并反转数组列表,然后再将其添加到适配器以保持项目的正确顺序。
  • 谢谢,我正在研究这两个建议

标签: java android database firebase firebase-realtime-database


【解决方案1】:

使用 RecyclerView。它将重用在列表中滚动的视图。

https://developer.android.com/guide/topics/ui/layout/recyclerview

【讨论】:

    【解决方案2】:

    尝试像这样修改您的查询。 databaseReference.orderByChild("id").startAt(startAt).endAt(startAt + 30)

    Recyclerview 滚动到末尾时,您可以再次调用它。

    【讨论】:

      猜你喜欢
      • 2019-10-31
      • 1970-01-01
      • 1970-01-01
      • 2020-03-31
      • 1970-01-01
      • 1970-01-01
      • 2020-08-25
      • 2023-03-28
      • 1970-01-01
      相关资源
      最近更新 更多