当我使用javascript推送firebase数据库列表中的数据时,如何保存对象uid

时间:2017-06-06 08:29:08

标签: javascript firebase firebase-realtime-database angularfire

我想在Firebase数据库中推送新数据时保存uid。这不适用于auth用户,也适用于数据对象。

例如,我想要这个对象架构:

"-Kdsfdsg555555fdsgfsdgfs" : {  <------- I want this id
  Id : "Kdsfdsg555555fdsgfsdgfs",   <--- How to put that inside 
  name : "A",
  time_updated : "6/6/2017"
}

有什么方法可以获得这个id并将其推入对象内?

我的代码如下:

categories: FirebaseListObservable<any[]>; 

this.categories = this.db.list('/categories') as FirebaseListObservable<Category[]>;

addCategory(category: any) {
    return this.categories.push(category).then( snap => {
      this.openSnackBar('New category has been added', 'ok');

    }).catch(error => {
      this.openSnackBar(error.message, 'ok');
    });
  }

1 个答案:

答案 0 :(得分:-1)

有两种方法可以使用Firebase的var data = [{ BuildingID: "56", FloorId: "65", volume: [{ one: 12, two: 15, three: 12 }] }]; var MainInfo=[]; for (var i = 0; i < data.length; i++) { var obj = {}; obj.BuildingID = data[i].BuildingID; obj.FloorId = data[i].FloorId; for(var j in data[i].volume[0]){ obj[j]= data[i].volume[0][j]; } MainInfo.push(obj); } console.log(MainInfo);方法:

  • 通过传入一个参数,它将生成一个新位置并将参数存储在那里。
  • 通过传入任何参数,它只会生成一个新位置。

您可以使用第二种方式使用push()获取新位置或其密钥:

push()

但请注意,它通常也是一种反模式,用于将项目的关键字存储在该项目中。