【问题标题】:How to remove data (with prevChildKey) from Firebase Realtime Database?如何从 Firebase 实时数据库中删除数据(使用 prevChildKey)?
【发布时间】:2018-12-28 17:00:15
【问题描述】:

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

控制台错误给出这个:

未捕获的引用错误:未定义 deleteData 在 HTMLButtonElement.onclick (index.html:1)

index.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()
            }

【问题讨论】:

    标签: javascript firebase web firebase-realtime-database


    【解决方案1】:

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

    改为使用data.key 来获取练习的ID 并对其调用remove。

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

    【讨论】:

    • 我尝试过,但仍然没有任何反应
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-20
    • 1970-01-01
    • 2021-06-04
    • 1970-01-01
    • 2020-01-17
    • 2021-09-20
    相关资源
    最近更新 更多