【问题标题】:How to increase limit of "limitToFirst" in Firebase query?如何在 Firebase 查询中增加“limitToFirst”的限制?
【发布时间】:2019-06-13 00:42:52
【问题描述】:

大家好,我从 recyclerview 的 firebase 获取数据。为了更好地理解我的问题,请访问我之前的问题。 How do i add the show more functionality to getting firebase database?

这是我之前的问题。为此,我发现了一些逻辑(可能是错误的)。 如果我设置查询,

Query sortPost=PostRef.orderByChild("count").limitToFirst(firstTenPost);

我将 Scrolllistner 设置为检测底部的滚动范围

postList.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
                super.onScrollStateChanged(recyclerView, newState);firstTwoPost=2;
                Toast.makeText(MainActivity.this, "Last", Toast.LENGTH_LONG).show();

//So here i want to add +10 items with show more in recyclerview
                    }
                }
            });

【问题讨论】:

    标签: java android firebase


    【解决方案1】:

    根据您的要求,您不需要增加limitOfFirst()的限制。

    您应该尝试使用 startAt() 方法。 请参阅下面的代码以更好地理解。

    首次加载时:

    代码应该是,

    Query sortPost=PostRef.orderByChild("count").limitToFirst(firstTenPost);
    

    并根据此查询的响应,使用迭代器从子记录中找到最后一个键。

    您可以使用以下循环从响应快照中获取最后一个键,

    for(DataSnapshot childSnap : dataSnapshot.getChindren()){
       lastKey = childSnap.getKey();
    }
    

    并且在加载更多使用下面的查询时,

    String lastKey = "Last Fetched Key From Earlier Response";
    Query sortPost=PostRef.orderByChild("count").startAt(lastKey).limitToFirst(firstTenPost);
    

    并且根据这个查询的响应,用 last 更新 lastKey 变量来获得记录键。

    注意:在加载更多响应时,您应该每次都跳过第一个值以避免重复对象。

    【讨论】:

    • 如何在 onbindviewholder 中找到 lastkey 以及如何从 onbindviewholder 中找到 lastkey
    • for(DataSnapshot childSnap : dataSnapshot.getChindren()){ lastKey = childSnap.getKey();在我使用 valueevenelistner 之前,我不能使用这个循环。请查看我从未使用listner获取值的代码
    • 我认为您的 startAt() 调用有点不对劲。您应该传递两个参数(orderByChild 的值,然后是 lastKey)
    • @Kato 哪两个参数?
    • orderByChild 和 lastKey 的值。 reference doc
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-26
    • 1970-01-01
    • 2019-02-10
    • 1970-01-01
    相关资源
    最近更新 更多