2017-01-12 3 views
1

Я использую Firebase и библиотеку AngularFire. Я ищу способ удалить все элементы или ряд элементов из объекта $ firebaseArray. Я не вижу прямого способа сделать это в documentation. Есть ли какой-то способ, о котором я не думаю, кроме цикла и удаления элементов один за другим? Пожалуйста, скажите мне, что это не единственный способ!AngularFire как удалить несколько элементов из массива?

ответ

1

Если это не метод в $firebaseArray, который делает то, что вы хотите, вы можете использовать массив $ref() для выполнения Firebase вызовов SDK стиля. Содержимое массива будет синхронизировано с изменениями, внесенными вами в ref.

Чтобы удалить все элементы, вызовите remove на самой Ref:

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

Чтобы удалить диапазон, выполнить update, в котором ключи должны быть удалены установлены на null:

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

Обе функции возвращают обещания.

Смежные вопросы