Angularfire:同步数组的行为

Angularfire: behavior of synchronized array

我一直在使用 angularfire 上的同步数组时遇到问题。我在 angularfire 1.1.3 和 firebase 2.3.1 上。 我有一个问题

var arr = $firebaseArray(ref.limitToFirst(5));

我到目前为止看到的行为是当我调用

arr.$remove(0)

查询返回的下一个对象会自动加载到同步数组中。这实质上使数组在查询响应上滑动 window - 它始终具有相同数量的元素。

自上周以来,这种行为似乎发生了变化,我得到了两种不同的情况:

1:任一 arr 确实加载了 5 个项目,但在调用 arr.$remove 五次后,数组为空 - 这在 JavaScript 数组上是正常行为,但这不是我之前在 AngularFire 同步阵列上看到的。

2: 或 arr 已加载但随后消失,即在代码中:

arr.$loaded(function(){
\ break
})

如果我中断回调,arr 确实有五个项目,对应于 Firebase 上的数据,但在 Angular 摘要循环的末尾,arr 是一个空数组。

演示: This plunker 显示行为 1

所以我的问题是:

更新

似乎行为 2 发生在行为 1 之后 - 更准确地说:在到达一个空的同步数组之后,如果我重新加载页面,那么我在 arr.$loaded 的回调中得到一个非空数组但是一个空的数组在最后。 这是否意味着 firebase 本身得到 "stuck"? 我会尝试在 plunker 中重现它。

现在应该可以解决这个问题。抱歉给您带来不便!