javascript - 如何从 firebase 实时数据库中打印多个对象?
问题描述
我正在从firebase
数据库中打印多个对象,但我得到空值我是新手firebase
我的结果为空,我想要Shubham manojm mohit
输出
$(document).ready(function(){
var rootRef = firebase.database().ref().child("messages");
rootRef.on("child_added", snap =>{
var name = snap.child("name").val();
$("#users").append('<div class="row sideBar-body"><div class="col-sm-3 col-xs-3 sideBar-avatar"><div class="avatar-icon"><img src="http://chat.synetal.com/assets/user2.jpg"></div></div><div class="col-sm-9 col-xs-9 sideBar-main"><div class="row"><div class="col-sm-8 col-xs-8 sideBar-name" id="chat"><span class="name-meta">'+ name +'</span></div><div class="col-sm-4 col-xs-4 pull-right sideBar-time"><span class="time-meta pull-right">18:18</span></div></div></div></div>');
});
});
解决方案
你需要使用 : .on("value") 然后使用 "key" 而不是 "name"
var rootRef = firebase.database().ref().child("messages");
rootRef.once('value', function(snapshot) {
snapshot.forEach(function(childSnapshot) {
var name = childSnapshot.key;
var childData = childSnapshot.val();
console.log(name, childData);
$("#users").append('<div class="row sideBar-body"><div class="col-sm-3 col-xs-3 sideBar-avatar"><div class="avatar-icon"><img src="http://chat.synetal.com/assets/user2.jpg"></div></div><div class="col-sm-9 col-xs-9 sideBar-main"><div class="row"><div class="col-sm-8 col-xs-8 sideBar-name" id="chat"><span class="name-meta">'+ name +'</span></div><div class="col-sm-4 col-xs-4 pull-right sideBar-time"><span class="time-meta pull-right">18:18</span></div></div></div></div>');
});
});
推荐阅读
- python - Python - 通过 csv 文件搜索多个关键字并从 BING.com 结果中获取第一个 URL 并将其保存为 CSV
- javascript - 如何使用数据库中的数据更改页面的某些内容
- rust - 在向量之间使用时,如何解释大于和小于运算符(`<`、`>`)?
- reactjs - “多余的 alt 属性。屏幕阅读器已经将 `img` 标签作为图像宣布。” 代码错误
- python - 使用foreign_key时sqlalchemy抛出错误
- javascript - AppendChild 和 insertAdjacentHtml 的区别?
- networking - 如何解决此错误:输入必须是向量,而不是 NULL。?
- ubuntu - 当我使用anaconda的环境时,我无法在Ubuntu系统中打开spyder。这是怎么发生的?我应该怎么办?
- c++ - 如何根据 C++ 中的条件返回两个不同的 lambda 函数?
- git - 为什么 VSCode 不识别 git?