【问题标题】:How to create child with autoid in Firebase with Angularfire2?如何使用 Angularfire2 在 Firebase 中创建具有 autoid 的孩子?
【发布时间】:2016-08-22 22:57:53
【问题描述】:
af.database.object('item').set({ name: newName });

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

我想知道每次这样保存在一个唯一的节点中。

在 Swift 中有这样的东西:

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

【问题讨论】:

    标签: angular firebase firebase-realtime-database angularfire2


    【解决方案1】:

    事实证明,没有一个班轮可以做到这一点。 在 AngularFire2 中,推送方法仅适用于 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 });
        }
    }
    

    【讨论】:

      【解决方案2】:

      您的意思是使用 .push 吗?

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

      或者你的意思是你想用那个键保存一个节点?如果是这样,那么这样做:

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

      【讨论】:

      • 这就是我们使用 Firebase 客户端在 Javascript 中保存的方式。我想知道如何专门用 angularfire2 保存! :) 你的第一个代码是如何存储数据。在具有自动生成 id 的节点上。
      • 你不能在 Angular 2 中仍然使用 firebase.database().ref() 吗?我的建议不涉及 angularfire2。
      • 我不确定!由于我使用的是 TypeScript ,因此不确定如何在 TypeScript 中使用 javascript 库的 typeDefinitions 。如果你能告诉我,那就太好了。
      • 您仍然可以使用普通的旧 javascript。 firebase.database().ref().child('person').push({ name: newName })
      • @MathewBerg 你曾经尝试过这样做,就像之前在你的组件中调用 firebase.something 一样?
      猜你喜欢
      • 2017-07-17
      • 2019-05-01
      • 2018-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多