Javascript 将唯一Id添加到Firebase
如何在推送时为Firebase的每个条目添加唯一ID?现在,我的代码如下所示:Javascript 将唯一Id添加到Firebase,javascript,firebase,ionic-framework,firebase-realtime-database,angularfire2,Javascript,Firebase,Ionic Framework,Firebase Realtime Database,Angularfire2,如何在推送时为Firebase的每个条目添加唯一ID?现在,我的代码如下所示: this.games.push({ game_name: data.gameName, number_of_players: data.number_of_players, random_id: this.randomId,
this.games.push({
game_name: data.gameName,
number_of_players: data.number_of_players,
random_id: this.randomId,
admin: data.admin,
first_name: data.your_name,
player_array: [this.combinePlayerName(this.firstName, this.admin)]
})
我正在使用AngularFire2并获取对此的数据库引用。游戏:
constructor(public navCtrl: NavController, public alertCtrl: AlertController, af: AngularFire) {
this.games = af.database.list('/games');
this.ids = af.database.list('/games/random_id');
}
我如何推送到数据库,而不是得到一个带有随机生成Id的列表:
我得到了一个我知道的、可以在客户端代码中选择的意向Id列表?有几种方法可以做到这一点: 获取推送id并将其存储在另一个节点中: 在AngularFire推送方法中有一种获取当前推送id的方法。因此,您可以将随机生成的ID更改为您知道的ID
this.games.push({
game_name: data.gameName,
number_of_players: data.number_of_players,
random_id: this.randomId,
admin: data.admin,
first_name: data.your_name,
player_array: [this.combinePlayerName(this.firstName, this.admin)]
}).then((game) => {
this.ids.push(game.key);
})
除此之外,您还可以使用set方法而不是push来更改push键:
其中,af包含喷射角射模块
constructor(public af : AngularFire) { }
尽管此方法工作正常,但它为您提供了另一项创建唯一ID的任务,firebase可以从第一种方法开始为您完成这项任务
此外,如上面的注释所述,您可以使用random_id子节点查询列表 你所说的有知识是什么意思?在推送之前或之后,您是否特别希望对ID执行某些操作?无论如何,推送ID不是完全随机的,它们的初始组件是一个时间戳:真的吗?是的,这里的措辞有点混乱,我想给他们Id,比如:331、123或554,而不是:KbaZqVQBp580Zzt4Uty和该列表中的其他。你可以使用或使用任何你喜欢的Id作为密钥添加它们,但是你有责任确保密钥是唯一的。通常,出于这个原因,鼓励使用推送。我可以使用推送,但是如果不使用KbaZqVQBp580Zzt4Uty,我如何查询游戏列表中的内容?您可以使用任意子值进行查询:游戏名称、名字等。这是您的意思吗?
constructor(public af : AngularFire) { }