如何使用Angularfire2在Firebase中创建具有autoid的子项?

时间:2016-08-22 13:42:18

标签: angular firebase firebase-realtime-database angularfire2

af.database.object('item').set({ name: newName });

我可以使用AngularFire2中的此方法在已知节点中保存值。

我想知道每次如何在一个独特的节点中保存。

在Swift中有类似的东西:

node.childByAutoId().setValue([key: value]);

2 个答案:

答案 0 :(得分:1)

原来没有一个衬垫。 在AngularFire2中,push方法仅适用于FirebaseListObservables,但不适用于FirebaseObjectObservable。所以这里有一个小组件来证明这一点:

import { Component } from '@angular/core';
import {AngularFire, FirebaseListObservable } from 'angularfire2';

@Component({
    selector: 'auto',
    template: `
    <ul>
        <li class="text" *ngFor="let p of person | async">
            {{p.name}}
         </li>
    </ul>
    <input type="text" #newname placeholder="Name" />
    <br />
    <button (click)="save(newname.value)">Set Name</button>
    `
})

export class AutoComponent {
    person: FirebaseListObservable<any>;
    constructor(private af: AngularFire) {
        this.person = af.database.list('person')
    }
    save(newName: string) {
        this.person.push({ "name": newName });
    }
}

答案 1 :(得分:0)

你的意思是使用.push?

node.child('items').push({ key: value })

或者您的意思是想要使用该密钥保存节点?如果是,那么这样做:

node.child('items').child(key).set(value);