将不存在的对象添加到 Firebase 数组中

Adding objects to Firebase arrays that don't exist

本文关键字:Firebase 数组 添加 不存在 对象      更新时间:2023-09-26

我正在尝试在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?

>$child()$push不是AngularFire中的方法。我强烈建议您阅读AngularFire的快速入门和分步指南。在文档中花费的几个小时可以防止这里出现数百个问题。

要创建您正在寻找的结构,您可以使用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 文档建议不要嵌套数组的原因之一。