将对象添加到不存在的Firebase阵列

时间:2016-02-16 10:16:10

标签: javascript angularjs firebase angularfire

我试图在Firebase中创建这种数据结构。

"updates": {
    "place_id_1": [
        "update1": {},
        "update2": {}
    ],
    "place_id_2": [
        "update1": {},
        "update2": {}
    ]
}

这是我正在使用的代码,但收到错误TypeError: updates.$child is not a function(…)。不确定是什么问题。如果您尝试添加对象/路径,Firebase是否会创建对象/路径?

    var ref = new Firebase(FirebaseConfig.baseUrl + "/updates");
    var updates = $firebaseObject(ref);
    updates.$child(update.place_id).$push(update); // will this work?

1 个答案:

答案 0 :(得分:0)

$child()$push不是AngularFire中的方法。我强烈建议您阅读AngularFire的quickstartstep-by-step guide。在文档中花费了几个小时就可以防止数百个问题。

要创建您正在寻找的结构,您可以使用AngularFire,但您不需要它。

使用Firebase JavaScript SDK:

var ref = new Firebase(FirebaseConfig.baseUrl + "/updates");
var place1 = ref.push();
place1.push({ key: 'value1' });
place1.push({ key: 'value2' });
var place2 = ref.push();
place2.push({ key: 'value3' });
place2.push({ key: 'value4' });

使用AngularFire:

var ref = new Firebase(FirebaseConfig.baseUrl + "/updates");
var place1 = $firebaseArray(ref.push());
place1.$add({ key: 'value1' });
place1.$add({ key: 'value2' });
var place2 = $firebaseArray(ref.push());
place2.$add({ key: 'value3' });
place2.$add({ key: 'value4' });

请注意,使用AngularFire读取这样的嵌套数组会很棘手。这是Firebase文档建议针对嵌套数组的一个原因。