使用angularfire2将新的子对象添加到firebase中的现有对象

时间:2017-01-20 10:58:01

标签: angular firebase firebase-realtime-database angularfire2

我将用户数据存储在firebase中

users : {
    -KamJGmnL8S4Nn_okIcc : {
        name: "Someone",
        email: "example.com",
        website: "somesite.com"
    },
    -laeghmnw8S4Nn_9inb47 : {
        name: "Someone",
        email: "example.com",
        website: "somesite.com"
    }
}

我需要向用户添加一个新的对象{ collections: <key> : { ... }, <key>: { ... } },比如上面对象中的第一个用户。我需要能够推送到collections,因为它可以有多个对象。

如何使用angularfire2执行此操作?

1 个答案:

答案 0 :(得分:2)

您可以单独使用listpush

const uid = "-KamJGmnL8S4Nn_okIcc";
const list = angularFire.database.list(`users/${uid}/collections`);
list.push({ name: "collection-a" });
list.push({ name: "collection-b" });

或者您可以将objectupdate一起使用(在多地点更新中):

const uid = "-KamJGmnL8S4Nn_okIcc";
const obj = angularFire.database.object(`users/${uid}`);

let collections = {
    `collections/${obj.$ref.push()}/name`: "collection-a",
    `collections/${obj.$ref.push()}/name`: "collection-b",
};
obj.update(collections);

请注意,在客户端上生成推送键,您可以通过调用push而不带参数来生成推送键。