2016-08-01 4 views
0

Я создаю приложение с ионной + угловой + ударной бомбой. Я не могу удалить узел из коллекции firebase. У меня есть html-представление, которое отображает список элементов из массива (используя ng-repeat). Это как мой взгляд выглядит:Firebase - Удалить узел

[email protected] : 23 
[email protected] : 784 

У меня есть кнопка удаления, которая позволяет пользователю удалить элемент из массива и в свою очередь, следует удалить объект из моей коллекции firebase. Я хочу заказать коллекцию с помощью EventID, а затем удалить узел с счетом 23 и по электронной почте: «[email protected]»

Bill 
-KMhWUkwDFwlRvqv0kDG 
    bill: 23 
    email: "[email protected]" 
    eventid: **42539660** 

-KN0_OUYJf_XQJSLPgmi 
bill: 784 
email: "[email protected]" 
eventid: **42539660** 

Я могу получить все счета с определенной EventID с помощью запроса :

var id = 42539660; 
billref.orderByChild('eventid').equalTo(id).on("value", function (snapshot) { 
} 

, но я не уверен, как действовать отсюда, чтобы удалить определенный узел. Спасибо за ваше время.

ответ

0

Если вы хотите удалить узел, соответствующий Вашему запросу:

var id = 42539660; 
billref.orderByChild('eventid').equalTo(id).on("value", function (snapshot) { 
    snapshot.forEach(function(childSnapshot) { 
    childSnapshot.ref.remove(); 
    }); 
} 

В качестве альтернативы вы можете использовать child_added, чтобы устранить необходимость в цикле:

var id = 42539660; 
billref.orderByChild('eventid').equalTo(id).on("child_added", function (snapshot) { 
    snapshot.ref.remove(); 
} 
+0

спасибо Фрэнк. Я изменил свою логику, чтобы получить идентификатор pushbbbbbbb элементов, которые появляются в массиве, а затем использовать id push для удаления узла. – AjRev

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