gpt4 book ai didi

android - 使用 FirestoreRecyclerAdapter 的 Firestore 分页 (Android)

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:30:43 25 4
gpt4 key购买 nike

<分区>

我已经在 https://firebase.google.com/docs/firestore/query-data/query-cursors 查看了文档

我想让 firestore 分页与 FirestoreRecyclerAdapter 一起使用。

有人有这个用例的示例工作代码吗?我有一个列表,该列表可能很长。我想设置一个限制并遵循通过将查询游标与 limit() 方法组合来对查询进行分页的策略。

到目前为止,这是我的 ListActivity 中的内容:

     // Construct query for first 25 teachers, ordered by firstName
firstQuery = FirebaseFirestore.getInstance()
.collection("School").document(user.getUid())
.collection("teachers")
.orderBy("firstName")
.limit(25);


FirestoreRecyclerOptions<Teacher> options = new FirestoreRecyclerOptions.Builder<Teacher>()
.setQuery(firstQuery, Teacher.class)
.build();

adapter = new FirestoreRecyclerAdapter<Teacher, TeacherHolder>(options) {
@Override
public void onBindViewHolder(final TeacherHolder holder, final int position, Teacher teacherItem) {
// Bind the Teacher object to the TeacherHolder
//progressBar.setVisibility(View.GONE);
....



}

要实现 firestore 文档给出的策略,下一步我该怎么做。

// Construct query for first 25 cities, ordered by population
Query first = db.collection("cities")
.orderBy("population")
.limit(25);

first.get()
.addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot documentSnapshots) {
// ...

// Get the last visible document
DocumentSnapshot lastVisible = documentSnapshots.getDocuments()
.get(documentSnapshots.size() -1);

// Construct a new query starting at this document,
// get the next 25 cities.
Query next = db.collection("cities")
.orderBy("population")
.startAfter(lastVisible)
.limit(25);

// Use the query for pagination
// ...
}
});

在使用 FirestoreRecyclerAdapter 时,如何将 firestore 给出的上述建议连接到我的应用程序中。我是否将 scrollListener 添加到上面的适配器?并监听滚动事件,重新运行查询。将所有这些联系在一起的示例代码将帮助我清除完成这一切所需的连线。

我确实看了一些围绕这个话题的其他聊天,我发现最接近的是 https://github.com/Malik333/RecyclerviewFirestorePagination但这没有使用我想使用的 FirestoreRecyclerAdapter。

讨论回收器适配器的 Firestore 文档 https://github.com/firebase/FirebaseUI-Android/tree/master/firestore#using-the-firestorerecycleradapter

(但关于如何将其与分页联系起来的信息不多)。

我在想也许我需要做类似于 this 的事情

但正在寻找与 FirestoreRecyclerAdapter 代码的集成。

我正在考虑从

myRecyclerView.setOnScrollChangeListener(new EndlessScrollListener() {
@Override
public boolean onLoadMore(int page, int totalItemsCount) {
// Triggered only when new data needs to be appended to the list
// Add whatever code is needed to append new items to your AdapterView
//loadNextDataFromApi(page);
// or loadNextDataFromApi(totalItemsCount);
return true; // ONLY if more data is actually being loaded; false otherwise.
}
});

并遵循本教程中概述的步骤 https://github.com/codepath/android_guides/wiki/Endless-Scrolling-with-AdapterViews-and-RecyclerView

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com