Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从firebase读取数据并将其写入textboxs javascript_Javascript_For Loop_Firebase - Fatal编程技术网

如何从firebase读取数据并将其写入textboxs javascript

如何从firebase读取数据并将其写入textboxs javascript,javascript,for-loop,firebase,Javascript,For Loop,Firebase,我正在从我的firebase数据库中读取许多不同的数据,目前,我已经对其进行了硬编码。这很好,但是我有太多的代码行,现在当我想修改我的代码时,它会变得非常混乱。下面我已经贴上了我所采取的当前方法 var ref = new Firebase("URL"); // Data set 1 ref.on('child_added', function(snapshot) { var snapshot = snapshot.val(); textbox1.innerHTML = snapsho

我正在从我的firebase数据库中读取许多不同的数据,目前,我已经对其进行了硬编码。这很好,但是我有太多的代码行,现在当我想修改我的代码时,它会变得非常混乱。下面我已经贴上了我所采取的当前方法

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;    
});
。。。。。 .....

与我所采取的方法不同,是否可以使用for循环或类似的方法来循环每个数据,因为我在firebase中的每个文本框/关键字的结构或多或少是相同的

我对javascript相当陌生,但从我对java的了解来看,我相信它会从这样的东西开始

var myTextbox = document.getElementById("mytextbox"); 
for (var i = 0; i < myTextbox.length; i++) {

}

我不是firebase方面的专家,但这里有一些潜在的解决方案,您可以尝试。例如,您可以使用“值”,而不是编写添加的子项和更改的子项。()

但这并不是解决问题的好方法,因为您希望一次检索所有值。 您的快照似乎包含所有属性为“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。您很可能会得到一个列表。您可以尝试检查-snapshot.forEach(函数(childsnapshot){childsnapshot.val();})
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"
....
....
ref.on('value', function(snapshot) {
var snapshot = snapshot.val();    
textbox1.innerHTML = snapshot.getvalue1.age;
});
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..
});