Как удалить child_object из базы данных, используя Javascript и Firebase - PullRequest
0 голосов
/ 04 мая 2019

Я устанавливаю некоторые объекты в базе данных Firebase и показываю их в таблице HTML с помощью child_added, чтобы динамически добавлять их, как только они добавляются в базу данных, и в каждой строке должна быть кнопка удаления.таблицы, но я не знаю, как сделать рабочую кнопку для удаления соответствующего объекта базы данных.

Я динамически создаю таблицу с информацией, поступающей из Firebase.база данных.Мне нужна кнопка удаления в каждой строке моей таблицы, которая удаляет соответствующую таблицу из базы данных.

function vislag(snapshot) {
        let nylag = snapshot.val();
        let idrettRef = database.ref("idrett/" + nylag.Idrett);
        idrettRef.once("value", function(snapshotIdrett) {
            let idrettinfo = snapshotIdrett.val();
            txtTabell.innerHTML += `
            <tr>
              <td>${nylag.navn}</td><td>${nylag.klasse}</td>
              <td>${nylag.antall}</td><td>${idrettinfo.navn}</td>
              <td>
<input type="button" value="delete ${nylag.navn}" onclick="deletelag()"></td>
          </tr>`;
        });
    }

    lag.orderByChild("Idrett").on("child_added", vislag);


function deletelag() {
        databaseobjekt.remove()
    }

Мне нужна функция onclick: deletelag () для удаления объекта из базы данных Firebase.Как мне это сделать?

1 Ответ

1 голос
/ 04 мая 2019

Чтобы удалить узел из базы данных , вам нужно иметь DatabaseReference, указывающую на этот конкретный узел, а затем вызвать на нем метод remove().

Код, которым вы поделились, выглядит так:

database.ref("idrett/" + nylag.Idrett).remove();

Если у вас есть список дочерних элементов, и вы хотите, чтобы пользователь мог удалить любого из них по отдельности, вам, как правило, необходимо добавить идентификатор каждого отдельного дочернего элемента в ваш HTML-код. Таким образом, вы можете прочитать идентификатор элемента, по которому щелкает пользователь, и удалить этот конкретный узел.

Простым примером этого может быть что-то вроде:

database.ref('listitems').once('value', (snapshot) => {
  snapshot.forEach((child) => {
    let id = child.id;
    let name = child.val()
    let liElm = `<li id='${id}'>${name}</li>`;
    listElm.appendChild(liElm);
  })
})

А теперь, когда кто-то нажимает на li, вы можете удалить правильный дочерний узел с помощью:

function onLiClick(e) {
  let id = e.target.id;
  database.ref('listitems').child(id).remove();
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...