如何在推入Angular 2 firebase数据库时创建自定义键

时间:2017-06-11 15:41:01

标签: javascript angular firebase firebase-realtime-database

我的app.component.ts如下

import { Component } from '@angular/core';
import { AngularFireDatabase, FirebaseListObservable, FirebaseObjectObservable } from 'angularfire2/database';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {

   list: FirebaseListObservable<any[]>;
    // listing: FirebaseObjectObservable<any[]>;
    constructor(private af:AngularFireDatabase) {
     this.list=this.af.list('/listings');
    //  this.addTask();
   }
   addTask(){
        this.list.push({ 
            name: 'Aswin',
            city:'kochi',
            bedrooms:'rarish@gmail.com',
            image:'9562096886',
            path:'10',
            price:'java',
            title:'3',
            type:'adipoli aanu'
      });
 }

}

我的观看页面就像这样

<input type="submit" (click)="addTask()"/>

现在,当点击提交按钮时,它会将值推送到angular2 firebase数据库。但是键名是随机的,如KmMlBPniR8wpcyBMDOz。

我想让关键应该是自定义的,即我想给自己的关键名称。应该可以,请帮帮我? 提前谢谢。

1 个答案:

答案 0 :(得分:2)

要创建自己的密钥,请不要使用push()方法。

您可以使用set()update()方法在特定数据库索引处创建新用户,例如:

this.db.object('users/YOUR_ID').set({
            name: 'Aswin',
            city:'kochi',
            bedrooms:'rarish@gmail.com',
            image:'9562096886',
            path:'10',
            price:'java',
            title:'3',
            type:'adipoli aanu'
      });