.remove () не работает по моей конкретной ссылке - PullRequest
0 голосов
/ 26 мая 2018

Это моя база данных:

enter image description here

И я хочу удалить значение "small_green", поэтому я пытаюсь с этим:

const refToDelete = firebase.database().ref().child('products').orderByChild('fruits').equalTo('small_green');
refToDelete.remove();

Но выдает эту ошибку:

enter image description here

Я следую этому учебнику и это документация.

Что я делаю не так?

1 Ответ

0 голосов
/ 26 мая 2018

Вы можете вызвать remove() только на DatabaseReference, который является ссылкой на точное местоположение в базе данных.

Ваш firebase.database().ref().child('products').orderByChild('fruits').equalTo('small_green') - это запрос, который не является точным местоположением.Это означает, что вы не можете позвонить remove() на это.Сначала вам нужно выполнить запрос, чтобы получить соответствующие местоположения, а затем вызвать remove() для каждого из них.

Обычно это будет что-то вроде:

const query = firebase.database().ref().child('products').orderByChild('fruits').equalTo('small_green');
query.once('value', functions(snapshot) {
  snapshot.forEach(function(childSnapshot) {
    childSnapshot.ref.remove();
  });
})

Кроме того, вы заказываете неправильный дочерний узел (как вы сказали в комментариях).Итак, вы захотите:

const query = firebase.database().ref().child('products/fruits').orderByChild('attrs').equalTo('small_green');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...