【发布时间】:2017-07-12 14:06:18
【问题描述】:
我正在尝试从我的 Firebase 数据库中生成一组数据并使用结果填充 HTML 页面。
这是我的数据库的布局:
MYAPP
|_______chat
|
|_______users
|_____2eD8O9j2w
| |____email
| |____first_name
| |____last_name
|
|_____7d73HR6d
|_____9ud973D6
|_____Kndu38d4
我希望能够获取users 中所有“电子邮件”和“名字”字段的数组,然后根据这些数据自动创建并填充 HTML 列表。 (有点像创建一个联系人列表,每行有两个 div:<td><div>first_name</div><div>email</div></td>)
这是我当前尝试用数据填充 HTML 页面:
HTML
(是否可以在 Javascript 中自动创建和填充这些行,而不是在 HTML 代码中创建空行?)
<div>
<section>
<table>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
</table>
</section>
</div>
Javascript
function createContactList(){
var elements = document.getElementsByTagName('td');
var contacts = [];
// Get a database reference to the users section
var ref = firebase.database().ref().child('/users');
ref.on("value", function(element) {
return function (snapshot) {
console.log(snapshot.val());
// Loop through each HTML tag
for(var i = 0; i < elements.length; i++){
element.innerHTML = snapshot.val();
var tester = snapshot.val();
console.log(tester.email); // This returns "undefined"
console.log(snapshot.val()); // This returns a list of User IDs
console.log(snapshot.val().email); // This returns "undefined"
console.log(snapshot.val(email)); // This shows the error: ``firebase Uncaught ReferenceError: email is not defined``
var createarraytest = snapshot.email;
contacts.push({email: createarraytest});
}
}(elements[i]),
function (errorObject) { // Deal with errors
console.log("The read failed: " + errorObject.code);
});
}
console.log(contacts);
}
当我运行这个函数时,它会在 HTML 页面上显示以下列表:
[OBJECT OBJECT]
[OBJECT OBJECT]
[OBJECT OBJECT]
[OBJECT OBJECT]
[OBJECT OBJECT]
console.log(snapshot.val()); 显示随机用户 ID 的列表。为了尝试访问每个 ID 的 email 和 first_name 数据,我尝试了以下操作:
var tester = snapshot.val();
console.log(tester.email); // This returns "undefined"
console.log(snapshot.val().email); // This returns "undefined"
console.log(snapshot.val(email)); // This shows the error: ``firebase Uncaught ReferenceError: email is not defined``
我习惯于在 SQL 数据库中使用 Javascript 中的数组,但我不知道如何访问 Firebase 在此 noSQL 数据库中创建的随机用户 ID 字符串中包含的数据。
我已尝试遵循此处发布的文档和答案:Proper way to store values array-like in Firebase,但到目前为止我无法使其正常工作。
非常感谢您提供任何帮助以使其正常工作,提前感谢您!
【问题讨论】:
标签: javascript firebase firebase-realtime-database