Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何更新html表中的firebase数据库数据?_Javascript_Html_Firebase_Firebase Realtime Database - Fatal编程技术网

Javascript 如何更新html表中的firebase数据库数据?

Javascript 如何更新html表中的firebase数据库数据?,javascript,html,firebase,firebase-realtime-database,Javascript,Html,Firebase,Firebase Realtime Database,我已经在HTML表中显示了firebase数据库数据 现在我想单击HTML表中的“Approve”按钮来更新状态以批准。(单击第一行,仅更新第一个数据) 这是我所做的按钮的代码,但是我不能做我想要的 function ButtonApproveClick(){ var req = document.getElementById('Users'); var dbRefReq = firebase.database().ref().child('Users') dbRefR

我已经在HTML表中显示了firebase数据库数据

现在我想单击HTML表中的“Approve”按钮来更新状态以批准。(单击第一行,仅更新第一个数据)

这是我所做的按钮的代码,但是我不能做我想要的

function ButtonApproveClick(){
    var req = document.getElementById('Users');
    var dbRefReq = firebase.database().ref().child('Users')
    dbRefReq.once("child_added", function(snapshot ) {
        snapshot.ref.update({ statuss: "valid" })
    });
}
这是我的数据库,看起来像:[Firebase数据库]

谁能帮我解决这个问题

(函数(){
变量配置={
apiKey:“AIzaSyDwrBm054kYrvm-6hZg3Ve\u I0Rgp4MfOGo”,
authDomain:“petservice-f7559.firebaseapp.com”,
数据库URL:“https://petservice-f7559.firebaseio.com",
projectId:“petservice-f7559”,
storageBucket:“petservice-f7559.appspot.com”,
messagingSenderId:“390073142865”
};
firebase.initializeApp(配置);
const req=document.getElementById(“用户”);
const dbRefReq=firebase.database().ref().child('用户')
dbRefReq.on('child_added',snap=>{
var name=snap.child(“name”).val();
var phone=snap.child(“phone”).val();
var status=snap.child(“status”).val();
var icurl=snap.child(“icurl”).val();
var userid=snap.child(“userid”).val();
$(“#表体”)。追加(“+name+”“+phone+”“+status+”批准删除“);
});
}());
函数App(){
firebase.database().ref().child('Users').child(dataid).update({status:'valid})
}
函数Dis(){
警报(“Hi2”);
}
正文{
背景:#fff;
填充:0px;
边际:0px;
字体系列:“Nunito”,无衬线;
字体大小:16px;
}
输入,按钮{
字体系列:“Nunito”,无衬线;
字号:700;
}
.main div、.loggedin div{
宽度:20%;
保证金:0px自动;
边缘顶部:150px;
填充:20px;
显示:无;
}
.主分区输入{
显示:块;
边框:1px实心#ccc;
边界半径:5px;
背景:#fff;
填充:15px;
大纲:无;
宽度:100%;
边缘底部:20px;
过渡:0.3s;
-webkit转换:0.3s;
-moz跃迁:0.3s;
}
.主分区输入:焦点{
边框:1px实心#777;
}
.main div按钮、.loggedin div按钮{
背景:5d8ffc;
颜色:#fff;
边框:1px实心#5d8ffc;
边界半径:5px;
填充:15px;
显示:块;
宽度:100%;
过渡:0.3s;
-webkit转换:0.3s;
-moz跃迁:0.3s;
}
.main div按钮:悬停,.loggedin div按钮:悬停{
背景:#fff;
颜色:5d8ffc;
边框:1px实心#5d8ffc;
光标:指针;
}
桌子{
字体系列:arial,无衬线;
边界塌陷:塌陷;
宽度:100%;
}
td,th{
边框:1px实心#dddddd;
文本对齐:左对齐;
填充:8px;
}
tr:n个孩子(偶数){
背景色:#dddddd;
}

$(文档).ready(函数(){
$(“#myInput”)。在(“keyup”,function()上{
var value=$(this.val().toLowerCase();
$(“#A”).filter(函数(){
$(this).toggle($(this).text().toLowerCase().indexOf(value)>-1)
});
});
});
Firebase登录
你好
所有用户
名称
电话
地位
网址
批准
不赞成

这是一个三步流程。由于您没有共享完整的代码/HTML,因此我只提供所需的步骤:

  • 确保
    ButtonApproveClick
    知道用户单击的特定按钮
  • 然后在该行中查找子节点的Firebase键/id(通常通过将键/id存储在该行的
    id
    属性中)
  • 最后,将key/id传递到要更新的数据库调用中:
    firebase.database().ref().child('Users').child(keyOfUserThatWasClicked)。update({status:'valid})
    。这里不需要
    once()
    listener
  • 关于如何呈现用户的一个简单示例:

    firebase.database().ref().child('Users').on('value', function(snapshot) {
      snapshot.forEach(function(userSnapshot) {
        var tr = document.createElement('tr');
        tr.id = userSnapshot.key;
        // TODO: populate the rest of the row and add it to the table
    });
    
    然后,您可能会获得用户单击的行的ID:

    function ButtonApproveClick(e){
        var button = e.target;
        var tr = e.parentElement.parentElement; // might need more or fewer to reach the right/TR element in the HTML
        var key = tr.id;
        firebase.database().ref().child('Users').child(key).update({ statuss: "valid" })
    }
    

    我对代码做了一些修改,现在我已经在数据库中保存了用户id,现在我想在用户单击按钮时获取id。