#javascript #firebase #firebase-realtime-database
#javascript #firebase #firebase-realtime-database
Вопрос:
Это файл 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 (), предупреждение тоже работает, но единственная проблема, с которой я сталкиваюсь, заключается в том, что данные не удаляются.