我向已填充的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()?

提前致谢

最佳答案

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());
});

08-04 12:20