繁体   English   中英

如何使用for循环JavaScript将数据添加到Firebase

[英]How to add data to firebase using for loop javascript

我想知道是否有可能使用for循环将数据添加到firebase中,因为我正在使用的数据大致相同,但是数字递增1。

var usersRef = ref.child("users");
usersRef.set({
  Person1: {
    name: "person1",
    surname: "person1"
  },
  Person2: {
    name: "person2",
    surname: "person2"
  },
  Person3: {
    name: "person3",
    surname: "person3"
  },
  .........
  .........
  Person28: {
    name: "person28",
    surname: "person28"
  }
});

相反,我想做的是:

    var ref = new Firebase("https://docs-examples.firebaseio.com/web/saving-data/fireblog");
    var usersRef = ref.child("users");
 for (var i = 0; i <= 28; ++i) {
    usersRef.set({
    Person+i: {
    name: "person" + i,
    surname: "person" + i
    }
   });
}

这样可能吗? 欢迎任何帮助。

当然:

var person = {};

for (var i = 1; i <= 28; ++i) {
    person[ "Person" + i ] = { "name": "person" + i, surname: "person" + i };
}

var ref = new Firebase("https://docs-examples.firebaseio.com/web/saving-data/fireblog");
var usersRef = ref.child("users");
usersRef.set( person );

注意:索引应从1开始

我不明白为什么不这样做,但是除非文档明确指定这样做,否则我不建议您在每次迭代中都更新Firebase child吸气剂也是如此。 我将它们移动到循环之外,如下所示:

var ref = new Firebase("https://docs-examples.firebaseio.com/web/saving-data/fireblog");
var usersRef = ref.child("users");
for (var i = 0; i <= 28; ++i) {
    var persons = {};
    persons['Person'+i] = {
        name: "person" + i,
        surname: "person" + i
    }
}
usersRef.set(persons);

括号符号可用于以编程方式获取/设置属性以及使用无效JavaScript的键。

在当前方法中(即使您纠正了语法错误),由于您正在调用usersRef.set() ,因此添加的每个新用户也会替换以前的用户。 如果使用update()而不是set,它将不会覆盖现有数据。

但这对我来说似乎更简单:

var ref = new Firebase("https://yours.firebaseio.com/");
var usersRef = ref.child("users");
for (var i = 0; i <= 28; ++i) {
    usersRef.child("Person"+i).set({
        name: "person" + i,
        surname: "person" + i
    });
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM