Функция Remove () не работает в firebase для web

#javascript #firebase #firebase-realtime-database

#javascript #firebase #firebase-realtime-database

Вопрос:

Вот как выглядит моя база данных firebase Это файл js. Что я пытаюсь сделать, так это создать функцию onclick delete при нажатии на определенную строку на странице html. Пока я могу получить дочерний ключ (вложенность), но каким-то образом функция удаления выдает ошибку, т.е. career-delete.html:1 Неперехваченная ошибка ссылки: MCu9V4ypS не определен в HTMLButtonElement.onclick (career-delete.html:1).

  userImagesRef1.once("value", function(snapshot) {
      var val1, val2, val3;
      var ParentKey = snapshot.key;
    console.log("PK" ParentKey);
      snapshot.forEach(function(childSnapshot) {
          childSnapshot.forEach(function(snap){
              var childKey = snap.key;
              console.log("CK"   childKey);
          
          var Vacancy = snap.child("VacancyNumber").val();
          console.log("VacancyNumber"   Vacancy);

        //   var NoticeNumber = snap.child("Service").val();
        //   var NameofWork = snap.child("Title").val();
                snap.child('pictures').forEach(function(openPicturesSnap){
                    console.log("KEY LINKS: "   openPicturesSnap.key);
                    // var i = 0;
                    if(openPicturesSnap.key == 0){
                        val1 = openPicturesSnap.val();
                        // console.log("LINKS1111::::"   val1 );
                    }
                    if(openPicturesSnap.key == 1){
                        val2 = openPicturesSnap.val();
                        
                    }
                    if(openPicturesSnap.key == 3){
                        val1 = openPicturesSnap.val();
                        
                    }
                })   
                var Service = String(snap.child("Service").val());
                // console.log(Service)
                var ts = snap.child("timestamp").val();
                // console.log("TS:"   ts);
                var Title = String(snap.child("Title").val());
                // console.log(Title)
                let Numberofposts = String(snap.child("NumberofPosts").val());
                // console.log(Numberofposts);
                var SNo = "";
                var State = snap.child("Status").val();
                var IssueDate = snap.child("IssueDate").val();
                var ClosingDate = snap.child("ClosingDate").val();
                var Remarks = String(snap.child("Remarks").val());
        

                $("#tableBody").append("<tr><td>"  SNo  "</td><td><a href = '"   val1  "'>"  Vacancy "</a></td>"  "<td><a href = '"  val2   "'>"  Service "</a></td><td>"   Title   "</td><td>" Numberofposts "</td><td>"   IssueDate   "</td><td>" ClosingDate   "</td> <td>"   State "<td><a href = '"  val3   "'>"  Remarks "</a>"  "</td><td>" '<button type="button"  onClick=Delete(' childKey '); class="btn  delete">X</button>' "</td></tr>" );        
              })
            }) 
              function Delete(key){
                      var feedRef = firebase.database().ref("user-images").child(key);
                      feedRef.remove()
                      .then(function(){
                          console.log("Remove succeeded.")
                          alert("Added");
                          // console.log(key.val());
                      })
                      .catch(function(error){
                          console.log("Remove Failed!" error.message)
                      });
              } 
          });
  

Ответ №1:

Вы можете удалить узлы, используя следующую альтернативу:

 feedRef.set(null);
  

Ответ №2:

Вам нужно добавить несколько двойных кавычек следующим образом:

 <button type="button"  onclick="Delete('"  childKey  "');" class="btn  delete">X</button>
  

Комментарии:

1. Когда я добавляю этот тег в append() , он не работает. можете ли вы предложить альтернативу?

2. Теперь, даже если ошибки нет, данные все равно не удаляются из базы данных.

3. Каков точный результат вашего вызова append ? Можете ли вы посмотреть на исходный код HTML и извлечь то, что генерируется этим вызовом?

4. append — это добавление данных, которые я ввожу (через интерфейс). Я даже добавил предупреждение к Delete (), предупреждение тоже работает, но единственная проблема, с которой я сталкиваюсь, заключается в том, что данные не удаляются.