2017-03-08 2 views
0

Im Wesentlichen versuche ich, eine Schaltfläche auf einem erstellten Textknoten in js zu erstellen. Suchen Sie dann den Wert von spmet und entfernen Sie die Frage (spmet) aus der Datenbank.Firebase, den Schlüssel des Elternteils basierend auf dem Wert des Kindes zu finden

Allerdings kann ich nicht herausfinden, wie man es richtig referenziert, und finde den spezifischen Wert, den ich löschen möchte. (So ​​anderes Bild, entfernen Sie diese Frage aus der Datenbank, wenn ich die "x" drücken)

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 
} 

Antwort

0

Wenn Sie das HTML-Element für jede Frage erzeugen, halten Sie die ID, dass Frage als ein Attribut an diesem HTML-Element:

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); 
}); 

Jetzt, wenn der Benutzer klickt auf eine der Fragen, können Sie den Schlüssel aus dass div und entfernen Sie es:

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