使用JavaScript中的循环动态创建多个Firebase引用

时间:2015-04-04 16:22:22

标签: javascript raspberry-pi firebase

我正在编写一个脚本,使用Firebase与我的Raspberry Pi上的pin值仪表板进行交互。它还允许我通过firebase更新这些引脚值。我设法创建了一个动态脚本,可以使用任何给定数量的引脚,但我遇到的一个部分是如何动态创建实际的firebase引用本身。例如;

如果我想引用前9个引脚,我在脚本中创建了9个引用;

var myFirebaseRef1 = new Firebase("https://ant-torch-2.firebaseio.com/gpio2/1");
var myFirebaseRef2 = new Firebase("https://ant-torch-2.firebaseio.com/gpio2/2");
var myFirebaseRef3 = new Firebase("https://ant-torch-2.firebaseio.com/gpio2/3");
var myFirebaseRef4 = new Firebase("https://ant-torch-2.firebaseio.com/gpio2/4");
var myFirebaseRef5 = new Firebase("https://ant-torch-2.firebaseio.com/gpio2/5");
var myFirebaseRef6 = new Firebase("https://ant-torch-2.firebaseio.com/gpio2/6");
var myFirebaseRef7 = new Firebase("https://ant-torch-2.firebaseio.com/gpio2/7");
var myFirebaseRef8 = new Firebase("https://ant-torch-2.firebaseio.com/gpio2/8");
var myFirebaseRef9 = new Firebase("https://ant-torch-2.firebaseio.com/gpio2/9");   

我怎样才能将这一批次贴入循环并避免重复10行?我尝试过使用EVAL函数,Arrays等,但没有一个有效?!我已设法变异'脚本栏的每个方面都有这个位!

1 个答案:

答案 0 :(得分:0)

您可以将每个Ref存储在这样的数组中,例如

var fires = {};
for (i = 1; i < 10; i++) {
    fires["myFirebaseRef" + i] = new Firebase("https://ant-torch-2.firebaseio.com/gpio2/" + i);
}

或全球window var:

for (i = 1; i < 10; i++) {
    window["myFirebaseRef" + i] = new Firebase("https://ant-torch-2.firebaseio.com/gpio2/" + i);
}

并像这样访问每个参考:

console.log(myFirebaseRef1);

然后它将全球可用。在使用闭包/范围时,您可能不希望这样。