如何从firebase中读取数据并将其写入文本框中javascript
问题描述:
我正在从我的firebase数据库中读取大量不同的数据,目前我已对其进行了硬编码。这工作正常,但是我有很多代码行,现在当我想改变我的代码时,它变得非常混乱。下面我粘贴了我所采用的当前应用。如何从firebase中读取数据并将其写入文本框中javascript
var ref = new Firebase("URL");
// Data set 1
ref.on('child_added', function(snapshot) {
var snapshot = snapshot.val();
textbox1.innerHTML = snapshot.getvalue1.age;
});
ref.on('child_changed', function(snapshot) {
var snapshot = snapshot.val();
textbox1.innerHTML = snapshot.getvalue1.age;
});
// Data set 2
ref.on('child_added', function(snapshot) {
var snapshot = snapshot.val();
textbox2.innerHTML = snapshot.getvalue2.age;
});
ref.on('child_changed', function(snapshot) {
var snapshot = snapshot.val();
textbox2.innerHTML = snapshot.getvalue2.age;
});
..... ..... .....
// Data set 100
ref.on('child_added', function(snapshot) {
var snapshot = snapshot.val();
textbox100.innerHTML = snapshot.getvalue100.age;
});
ref.on('child_changed', function(snapshot) {
var snapshot = snapshot.val();
textbox100.innerHTML = snapshot.getvalue100.age;
});
相反,我采取的办法,是有可能使用一个for循环或类似的东西这是为了遍历每个数据,因为我的firebase中的每个文本框/关键字的结构都差不多。
我相当新的JavaScript,但从我的Java知识,我相信它会开始这样的事情;
var myTextbox = document.getElementById("mytextbox");
for (var i = 0; i < myTextbox.length; i++) {
}
欢迎任何帮助,如果我的问题不明确,请让我知道。
编辑:
Mydata:
textbox1 - value - age : "This is textbox 1, age:21"
textbox2 - value - age : "This is textbox 2, age:53"
textbox2 - value - age : "This is textbox 3, age:04"
....
....
答
我不是在火力方面的专家,但在这里,你可以尝试一些可能的解决方案。例如,您可以使用'value'来代替编写child_added和child_changed。 (Reference)
ref.on('value', function(snapshot) {
var snapshot = snapshot.val();
textbox1.innerHTML = snapshot.getvalue1.age;
});
但是,这不是你的问题,因为你希望所有的值在一次检索一个很好的解决方案。 看起来你的快照具有属性'getValuei'的所有值,其中i从1 ... n。 一个更好的解决办法是这样的..
ref.on('value', function(snapshot) {
var snapshot = snapshot.val();
textbox1.innerHTML = snapshot.getvalue1.age;
textbox2.innerHTML = snapshot.getvalue2.age;
textbox3.innerHTML = snapshot.getvalue3.age; //..and so on..
});
您好,我试过,但这个只读取第一个文本框我在这种情况下textbox1.innerHTML = snapshot.getvalue1.age定义数据;并且通过使用'value'而不是data_added/data_changed它会返回undefined。 – Henry
你很可能会得到一个列表。你可以试试这个来检查 - snapshot.forEach(function(childsnapshot){childsnapshot.val(); }) – Nikhil