我试图以数据表的形式显示数据,并允许用户以所需格式下载。但这似乎不起作用,我的数据既没有显示也没有下载。这是当前正在使用的代码。
document.addEventListener("DOMContentLoaded", function(event) {
var dTable=$('#ex-table').DataTable({
"bDestroy": true,
dom: 'lfrtipB',
buttons: [
{
extend: 'copyHtml5',
title: 'Records'
},
{
extend: 'csvHtml5',
title: 'Records'
},
{
extend: 'excelHtml5',
title: 'Records'
},
{
extend: 'pdfHtml5',
title: 'Records'
},
'print'
],
lengthMenu: [[5, 20, 50, -1], [5, 20, 50, "All"]]
});
});
var databaseRef = firebase.database().ref("users/");
var table = $('#ex-table').DataTable();
databaseRef.on("child_added", function(data) {
var storageObj = data.val();
var dataSet = [storageObj.Department, storageObj.EmpId, storageObj.Name, storageObj.Position];
table.rows.add([dataSet]).draw();
});
这是我尝试使用的代码的https://codepen.io/jagrutitiwari/pen/WYBWVy代码。我要去哪里错了?
更新:
Update2
安全规则:
{
"rules": {
".read": "auth != null",
".write": "auth != null"
}
}
更新3
如果我将dataSrc
添加到数据表中,则可以使用,但现在无法在数据表中看到导出按钮。
document.addEventListener("DOMContentLoaded", function(event) {
var dTable=$('#ex-table').DataTable({
"bDestroy": true,
dom: 'lfrtipB',
data: dataSrc,
buttons: [
{
extend: 'copyHtml5',
title: 'Records'
},
{
extend: 'csvHtml5',
title: 'Records'
},
{
extend: 'excelHtml5',
title: 'Records'
},
{
extend: 'pdfHtml5',
title: 'Records'
},
'print'
],
lengthMenu: [[5, 20, 50, -1], [5, 20, 50, "All"]]
});
});
答案 0 :(得分:1)
根据您的安全规则,您的用户需要进行身份验证才能读取(和写入)数据库。
使用您在问题中显示的代码(我想是整个HTML页面的摘录),您似乎并没有要求用户进行身份验证,因此在查询数据库时您不会得到任何记录
您应该集成身份验证机制,例如使用FirebaseUI Auth(请参见https://github.com/firebase/firebaseui-web),或者,如果您的数据库正在测试中,请尝试使用“公共”规则,例如:
{
"rules": {
".read": true,
".write": true
}
}