我很感激你能帮我解决以下问题:
我有一个Ionic 2项目,需要知道如何使用Firebase数据库中的自定义密钥保存对象。
实际上,在Firebase中我有:
+ blabla
+ blabla
- users :
- UIDXXX : {
+ last_audio: {}
+ sessions : []
}
好吧,而不是字符串UIDXXX,我需要将用户的uid保存为键,例如:
- users :
- 232ssadas223ss2 : {
+ last_audio: {}
+ sessions : []
}
- das112dasd21dsd : {
+ last_audio: {}
+ sessions : []
}
.
.
.
这就是我实际检索数据的方式:
this.auth.subscribe((user) => {
if (user) {
let firebaseObservable = this.angularFire.database.object(`/users`);
firebaseObservable.update({
useruid : {
last_audio: this.audio,
sessions: [
"Hoy",
"Ayer"
]
}
});
}
});
但是,显然我将“userid”这个词保存为关键字而不是user.uid,而在Firebase中我得到了:
users :
- useruid : {
+ last_audio: {}
+ sessions : []
}
非常感谢你。
答案 0 :(得分:1)
您可以使用所谓的括号表示法将数据设置到对象中:
let firebaseObservable = this.angularFire.database.object(`/users`);
var updates = {};
updates[userid] = {
last_audio: this.audio,
sessions: {
"Hoy": true,
"Ayer": true
}
};
firebaseObservable.update(updates);
我还将您的sessions
数组更改为一组,因为它可能更好地反映您要存储的内容。有关阵列与集合的更多内容,请参阅我的答案:Firebase query if child of child contains a value