如何使用javascript在html中将firebase数据显示为列表
How to display firebase data as list in html using javascript?
我要做的事情:
- 我正在尝试为firebase中的一个更大的应用程序构建一个评论系统
- 现在,我所要做的就是将页面上提交的字符串显示为列表
- 我改编自一个关于packt发布的Livelinks教程,该教程允许提交链接/标题,然后显示为列表
- 我删除了链接部分,并试图调整标题部分以获得评论
发生了什么:
- 提交数据效果良好
- 问题是显示数据
- 页面将显示一个空白列表
- 它知道条目的数量,但不知道实际值
问题
- 我对这一切如何工作的理解是有限的,所以我无法准确描述我是如何尝试实现规范的
- 我认为javascript创建了一个数组,将firebase数据放在数组中,然后显示数组
- 我想我可能缺少对Firebase密钥/id的引用,但我不知道该如何做/放在哪里
- 我探索的每一个想法/途径似乎都会彻底打破现状
- 如何使用javascript获取firebase数据,然后将其显示为列表
(在下面的代码中,Firebase引用已更改为"fbname")。
如有任何帮助,我们将不胜感激。
function Comments(fbname) {
var firebase = new Firebase("https://" + fbname + ".firebaseio.com/");
this.firebase = firebase;
var commentsRef = firebase.child('comments');
this.submitComment = function(text) {
commentsRef.push({
text: text
});
};
this.onCommentsChanged = function() {};
commentsRef.on('value', function(snapshot) {
var comments = snapshot.val();
var preparedComments = [];
for (var text in comments) {
if (comments.hasOwnProperty(text)) {
preparedComments.push({
text: comments.text
})
}
}
this.onCommentsChanged(preparedComments);
}.bind(this));
};
$(document).ready(function() {
var ll = new Comments('fbname');
$(".comment-form form").submit(function(event) {
event.preventDefault();
ll.submitComment($(this).find('input.comment-text').val());
$(this).find("input[type=text]").val("").blur();
return false;
});
ll.onCommentsChanged = function(comments) {
$(".comments-list").empty();
comments.map(function(comment) {
var commentElement = "<li><a href='" + comments.text + "</a></li>";
$(".comments-list").append(commentElement);
});
};
});
<html>
<head>
<script src="https://cdn.firebase.com/js/client/2.2.7/firebase.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script src="app.js"></script>
</head>
<body>
<h1>Comments Test</h1>
<div class="comment-form">
<form>
<input type="text" class="comment-text" placeholder="comment text.."/>
<input type="submit" value="Comment"/>
</form>
</div>
<div class="comments">
<ul class="comments-list">
</ul>
</div>
</body>
</html>
此代码可能会有所帮助:
db.collection("comments").get().then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
// doc.data() is never undefined for query doc snapshots
var string = JSON.stringify(doc.data())
var parsed = JSON.parse(string)
document.getElementById("yourcontainer").innerHTML += parsed.text +
'<br>'
});
});
相关文章:
- 如何将json数据显示为html
- 解耦按钮(两个按钮同时切换),并根据数据显示相应的按钮
- 将json提要数据显示为html
- 使用Ajax Get方法将数据显示到特定元素中
- 如何将数据显示为线性highChart
- Json显示来自网站的数据显示仅未定义
- 使 ajax 请求和成功数据显示在 id <选择>选择>部分中
- 在按钮单击时将图像URL数据显示到弹出框中,而无需禁用背景
- 如何在循环中将 json 数据显示为 HTML
- 如何使用javascript在html中将firebase数据显示为列表
- PHP同时循环数组数据显示到javascript中
- 原始图像数据显示
- 如何在 y 轴上将数据显示为 KB、MB、GB、TB
- Ajax 数据显示在包含 10 行的表中
- 如何让 Mathjax.js 与 ANCII.js 将附加的 json 数据显示为正确的公式
- 调用 Worklight 适配器并将列表视图中的 JSON 数据显示为字符串
- Jquery/Javascript Datatables : 如何在行选择时将行数据显示到 html 文本字段中
- 双击 td 时,如何在警告框中将数据库中的数据显示为 html 表
- 日期之间的数据显示所有头
- 如何使用模板中的数据显示谷歌地图