Firebase,根据孩子的价值找到父母的关键

时间:2017-03-08 11:12:52

标签: javascript html firebase firebase-realtime-database

基本上我要做的是在js中创建一个创建的文本节点上创建一个按钮。然后找到spmet的值并从数据库中删除问题(spmet)。

但是我无法弄清楚如何正确引用它,并找到我想要删除的特定值。 (所以其他图片,当我按“x”时从数据库中删除该问题)

this is the the way to remove questions

This is the firebase layout

var btn = document.createElement("BUTTON");
var btnText = document.createTextNode("x"); //create button

btn.appendChild(btnText);
tekst.appendChild(btn);
btn.id = "questionBtn";

//bytter enter som gir linjeskift til <br>
tekst.innerHTML = tekst.innerHTML.replace(/\n/g, '<br>');

chat.appendChild(bubble);

setTimeout(function(){
    chat.classList.add('visible')
}, 1);

chat.scrollTop = chat.scrollHeight;
console.log(bubble);
// Function to remove the question on the button generated
tekst.onclick = function removeQ(){

    window.alert("Knapp funker");

    var ref = database.ref();
    ref.child('spm')
        .orderByChild('spmet')
        .equalTo(spmet)
        .once('value', function(snap) { 
        //remove the specific spmet parent
        window.alert(snap.val());

    });
    document.getElementById("cont1").removeChild(bubble); // removes text from page
    var spmRef = ??
    spmRef.remove(); //can't reference properly
}

1 个答案:

答案 0 :(得分:0)

为每个问题生成HTML元素时,请将该问题的ID保留为该HTML元素的属性:

ref.child("spm").on("child_added", function(snapshot) {
  var div = document.createElement("div");
  div.id = snapshot.key;
  div.innerText = snapshot.child("spmet").val();
  div.onclick = onSpmClick;
  questionContainer.appendChild(div);
});

现在,当用户点击其中一个问题时,您可以从该div获取密钥并将其删除:

function onSpmClick(e) {
  var key = e.target.id;
  ref.child("spm").child(key).remove();
}