简体   繁体   English

为什么它显示未定义? 而我在 firebase 中有数据

[英]Why its showing undefined ? while I have data in firebase

The datatable row showing undefine instead of the data that I have in the firebase database even I try to put random data in datatable HTML file but still it shows undefined数据表行显示未定义而不是我在 firebase 数据库中的数据,即使我尝试将随机数据放入数据表 HTML 文件中,但仍然显示未定义

My Datatable and my data is also coming from the firebase as you can see console如您所见,我的数据和数据也来自 firebase

Firebase database Firebase 数据库

MIne HTML code:我的 HTML 代码:

  <body>
    <table id="user_data" class="display" width="100%" cellspacing="0">
        <thead>
            <tr>
               <th>USN</th>
               <th>Email</th>
               <th>Name</th>
               <th>Password</th>
           </tr>
        </thead>

         <tbody id="table-body-pengguna">
             <tr>
                <td id="USN"></td>
                <td id="email"></td>
                <td id="name"></td>
                <td id="password"></td>
            </tr>
        </tbody>
    </table>

Mine JS code:我的 JS 代码:

 firebase.initializeApp(firebaseConfig);

 firebase.analytics();

 $(document).ready(function() {

      var table = $('#user_data').DataTable({
          dom: 'Bfrtip',
          orderCellsTop: true,
          fixedHeader: true,
          targets: -1,
          className: 'dt-body-right',
          hover: 1

      });

   });

  firebase.database().ref('StudentID').get().then(function(snapshot) {
         if (snapshot.exists()) {
             console.log(snapshot.val());
             USN = snapshot.val().UserUSN;
             Email = snapshot.val().Useremail;
             Name = snapshot.val().Username;
             Password = snapshot.val().Userpassword;

             document.getElementById("USN").innerHTML = USN;
             document.getElementById("email").innerHTML = Email;
             document.getElementById("name").innerHTML = Name;
             document.getElementById("password").innerHTML = Password;

         } else {
            console.log(data.val());
        }
      })
      .catch(function(error) {
           console.log(error);
       });

I found another way to add data to datatable我找到了另一种将数据添加到数据表的方法

var table = $('#user_data').DataTable({ "bFilter": true }); var table = $('#user_data').DataTable({ "bFilter": true });

firebase.database().ref('StudentID').on('child_added', function(snapshot) {
    var dataSet = [snapshot.val().UserUSN, snapshot.val().Useremail, 
        snapshot.val().Username, snapshot.val().Userpassword];
         table.rows.add([dataSet]).draw();
   });

});

Firebase Read Functions require function which runs when a child is detected in your reference and then runs the code which retrieves your data from Realtime Database. Firebase 读取函数需要 function 在您的参考中检测到孩子时运行,然后运行从实时数据库中检索数据的代码。

Use this code:使用此代码:

firebase.database().ref('StudentID').on('child_added', (data) =>{
    var USN = data.val().UserUSN;
    var Email = data.val().Useremail;
    var Name = data.val().Username;
    var Password = data.val().Userpassword;
    document.getElementById("USN").innerHTML = USN;
    document.getElementById("email").innerHTML = Email;
    document.getElementById("name").innerHTML = Name;
    document.getElementById("password").innerHTML = Password;
})

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM