Firebase的limitToLast()方法无法按预期工作

时间:2016-04-27 09:20:56

标签: java android firebase

我为已填充的Firebase节点添加了一个侦听器。我只想获得新的同步数据。我在ref上调用set limitToLast(1),但是它从节点中检索所有数据。代码设置为将侦听器添加到多个引用,但目前只是向1添加侦听器。

这是我的代码:

                                    //size() == 1
for (int i  = 0; i < firebaseArrayList.size(); i++) { 
            firebaseArrayList.get(i).orderByValue().limitToLast(1);
            firebaseArrayList.get(i).addChildEventListener(this);
        }

有人知道为什么在我的代码中使用查询时,为节点中已有的每个项调用onChildAdded()?

提前致谢

1 个答案:

答案 0 :(得分:4)

documentation上说:

Generates a new Query object limited to the last certain number of children.

在您的代码中,您没有使用limitToLast生成的对象。

以下是文档中的示例:

var ref = new Firebase("https://dinosaur-facts.firebaseio.com/dinosaurs");
ref.orderByChild("weight").limitToLast(2).on("child_added", function(snapshot) {
    console.log(snapshot.key());
});