将数据从 firebase 显示到 HTML 表格

mis*_*ody 5 html javascript firebase firebase-realtime-database

我想寻求一些帮助,我是一名前端开发人员,我们目前有一个关于后端的项目/任务。我的团队成员决定在我们的 Web 应用程序中使用 firebase 作为数据库。我现在可以将数据发送到数据库,但我遇到了一个问题,我无法将数据从 firebase 检索到 Web 应用程序。我计划检索数据并将其显示在我的表 (HTML) 中。

这是我在 javascript 中用于从 firebase 检索数据的代码:

var database = firebase.database().ref().child('Tasks');
database.once('value', function(snapshot){
    if(snapshot.exists()){
        var content = '';
        var TaskTitle = snapshot.val().TaskTitle;
        var JobId= snapshot.val().JobId;

        snapshot.forEach(function(data){
        });

        content = '<tr>';
        content += '<td>' + TaskTitle + '</td>'; //column1
        content += '<td>' + JobId + '</td>';//column2
        content += '</tr>';
    }

    $('#ex-table').append(content);
    console.log(snapshot.val());
});
Run Code Online (Sandbox Code Playgroud)

这是我的 HTML 表中的代码,用于显示数据库中的数据:

<table class="table table-striped" id="ex-table">
    <thead class="thead-inverse">
        <tr>
        <th>Task Title</th>
        <th>Category</th>
        <th>Date</th>
        <th>Status</th>
        </tr>
    </thead>
    <tbody>
        <tr id="tr">
        <td id="titleTask"></td>
        <td id="categoryTask"></td>
        <td id="dateTask"></td>
        <td id="statusTask"></td>
       </tr>
   </tbody>
Run Code Online (Sandbox Code Playgroud)

我实际上无法在 Chrome 浏览器中查看使用控制台检索到的数据。

它显示的是:数据显示在控制台中,而在我的网络应用程序中,它显示如下:未定义

有人可以帮助我吗,我对一切都很陌生,非常感谢您的帮助。

Fra*_*len 4

您的嵌套有点不稳定,不幸的是,将所有位放在哪里非常重要:

var database = firebase.database().ref().child('Tasks');
database.once('value', function(snapshot){
    if(snapshot.exists()){
        var content = '';

        snapshot.forEach(function(data){
            var TaskTitle = data.val().TaskTitle;
            var JobId= data.val().JobId;
            content += '<tr>';
            content += '<td>' + TaskTitle + '</td>'; //column1
            content += '<td>' + JobId + '</td>';//column2
            content += '</tr>';
        });

        $('#ex-table').append(content);
    }
});
Run Code Online (Sandbox Code Playgroud)

步骤:

  1. 这会从 Firebase 加载任务,其中database.once().
  2. 然后,如果有任何任务(缩进一级),它将循环遍历它们(使用snapshot.forEach(...))。
  3. 在该回调中(因此又缩进了一层),它获取该特定任务的标题和作业 ID,并将其添加到正在构建的 HTML 字符串中。
  4. 最后,它将 HTML 添加到表中。