首页 > 解决方案 > 如何从 Firebase 实时数据库中删除数据(使用 prevChildKey)?

问题描述

我在这里问过一个问题,我一直在处理相同的代码。我不知道如何使用 prevChildKey 删除项目。

控制台错误给出这个:

未捕获的 ReferenceError:在 HTMLButtonElement.onclick (index.html:1) 中未定义 deleteData

索引.html

 <div id="list_div" class="list-div">
   </div>

index.js

        // Database Reference
            var DataRef = firebase.database().ref('users/' + currentUser.uid + '/exercises/');
    
        // Read data from database
            function readData(){
              //var readDataRef = firebase.database().ref('users/' + currentUser.uid + '/exercises/');    
              DataRef.on("child_added", function(data, prevChildKey) {
                var newData = data.val();
                console.log("ID: " + prevChildKey);
                console.log("name: " + newData.name);
                console.log("sets: " + newData.sets);
                console.log("reps: " + newData.reps);
                console.log("weights: " + newData.weights);
        
                document.getElementById("list_div").innerHTML+=`
                  
                  <div id="listitem_div" class="listitem-div">
                    <span class="listtext">Exercise Name: </span>${newData.name}<br>
                    <span class="listtext">Set: </span>${newData.sets}
                    <span class="listtext">Reps: </span>${newData.reps}
                    <span class="listtext">Weights: </span>${newData.weights}
                    <button type="submit" id="itemremove" class="itemremove"  onclick="deleteData(${prevChildKey})">Delete</button>
                  </div>
                `
              });
            }
                
        //Delete data from database
            function deleteData(prevChildKey){
                var newDataRef = firebase.database().ref('users/' + currentUser.uid + 'exercises/' + prevChildKey);
                  newDataRef.remove()
            }

标签: javascriptfirebasewebfirebase-realtime-database

解决方案


您收到的prevChildKey不是您要删除的练习的键。

而是使用data.key获取练习的 id 并对其调用 remove。

console.log("ID: " + data.key);


推荐阅读