AngularFire如何从数组中删除多个项目



我正在使用Firebase和AngularFire库。 我正在寻找一种从$firebaseArray对象中删除所有项目或一系列项目的方法。 我在文档中没有看到一种直接的方法。 除了一个接一个地循环和删除项目之外,还有其他我没有想到的方法吗? 请告诉我这不是唯一的方法!!

如果$firebaseArray中没有执行所需操作的方法,则可以使用数组的$ref()来执行 Firebase SDK 样式的调用。数组内容将与你通过 ref 所做的更改同步。

要删除所有元素,请在 ref 本身上调用 remove

function removeAll(firebaseArray) {
  return firebaseArray.$ref().remove();
}

要删除范围,请执行要删除的键设置为 nullupdate

function removeRange(firebaseArray, start, end) {
  var keys = {};
  if (end === undefined) {
    end = firebaseArray.length;
  }
  for (var i = start; i < end; ++i) {
    keys[firebaseArray.$keyAt(i)] = null;
  }
  return firebaseArray.$ref().update(keys);
}

这两个函数都返回承诺。

我无法让firebaseArray.$ref().remove()工作,因为当按孩子排序时,对象上不存在remove()函数,但执行以下操作似乎有效:

$firebaseUtils.doRemove(firebaseArray.$ref());

最新更新