我有一个可以在用户滚动到底部时加载更多项目的应用程序,我认为处理此问题的一种方法是动态调整limitToLast,以便再次触发child_added事件。
我可以不用重新绑定我的.on()函数吗?
答案 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
})
}