动态更改limitToLast

时间:2015-09-01 07:36:15

标签: firebase

我有一个可以在用户滚动到底部时加载更多项目的应用程序,我认为处理此问题的一种方法是动态调整limitToLast,以便再次触发child_added事件。

我可以不用重新绑定我的.on()函数吗?

2 个答案:

答案 0 :(得分:1)

如果您有这样的查询:

var query = ref.orderByKey().limitToLast(10)

如果您想更改显示的项目数,则必须创建新查询:

var query = ref.orderByKey().limitToLast(25)

但是:如果您只是想要获取添加到Firebase的新项目,那么这将自动发生。

一个例子可能会澄清这一点。假设您从10个项目列表开始:

-Jy39378901
-Jy39378902
-Jy39378903
-Jy39378904
-Jy39378905
-Jy39378906
-Jy39378907
-Jy39378908
-Jy39378909
-Jy39378910

通过上面的第一个查询,您最初将获得10个child_added个事件。

现在,如果有人稍后在此列表中添加了项目-Jy39378911,您将收到两个事件:

child_removed: -Jy39378900
child_added  : -Jy39378910

所以新项目会自动显示。但是,除非您创建新查询,否则无法更改查询参数。

答案 1 :(得分:0)

function doDynamic(offset){
    ref.orderByChild("foo").limitToLast(1 * offset).once('value', function (snap) {
        //do stuff
    })
}