firebase 抛出错误未捕获错误:Reference.child 失败:

时间:2021-05-13 12:48:48

标签: javascript firebase firebase-realtime-database undefined

我正在尝试从 Firebase 编辑或删除记录。 我已成功向 html 页面添加和检索数据。 但是在单击编辑或删除按钮期间没有任何反应并且出现错误。 错误:

<块引用>

未捕获的错误:Reference.child 失败:第一个参数是无效路径 =“未定义”。路径必须是非空字符串,并且不能包含“.”、“#”、“$”、“[”或“]”

我的js代码是

//TABLE REFERENCE
const  empRef = firebase.database().ref('employee');
//$('#emp-table').find('tbody').html('');
var new_html = '';
//EDIT
$(document).on('click', '.editEmp', function () {
    var emp_id = $(this).attr('data-emp-id');
    
    empRef.child(emp_id).once('value').then(function (emp){
        var modal_header = '';

        modal_header += '<h4 class="modal-title">Add ' + emp.val().name + '</h4>';
        modal_header += '<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>';

        var modal_body = '';
        modal_body += '<div class="form-group">';
        modal_body += '<label>Name</label>';
        modal_body += '<input id="edit-name" type="text" value="'+emp.val().name+'" class="form-control" required>';
        modal_body += '</div>';
        modal_body += '<div class="form-group">';
        modal_body += '<label>Email</label>';
        modal_body += '<input type="email" id="edit-email" value="'+emp.val().email+'" class="form-control" required>';
        modal_body += '</div>';
        modal_body += '<div class="form-group">';
        modal_body += '<label>Address</label>';
        modal_body += '<textarea id="edit-address"  class="form-control" required>'+emp.val().address+'</textarea>';
        modal_body += '</div>';
        modal_body += '<div class="form-group">';
        modal_body += '<label>Phone</label>';
        modal_body += '<input id="edit-phone" type="text" value="'+emp.val().phone+'" class="form-control" required>';
        modal_body += '</div>';
        

        var modal_footer = '';
        modal_footer += '<input type="button" class="btn btn-default" data-dismiss="modal" value="Cancel">';
        modal_footer += '<input type="submit" data-dismiss="modal" data-emp-id="'+emp_id+'"  class="btn btn-danger updateEmpData" value="Save">';
        $("#editEmployeeModal").find('.modal-header').html(modal_header);
        $("#editEmployeeModal").find('.modal-body').html(modal_body);
        $("#editEmployeeModal").find('.modal-footer').html(modal_footer);
        $("#editEmployeeModal").modal();
    })
});

1 个答案:

答案 0 :(得分:0)

看起来您的 emp_idundefined,Firebase 不允许这样做。

您可以通过以下方式在代码中捕获此条件:

var emp_id = $(this).attr('data-emp-id');

if (emp_id) {
    empRef.child(emp_id).once('value').then(function (emp){
    ...

另请参阅前面的这些questions about this error message