是否可以使用字符串变量?
设置对象的名称例如:
car: {
brands: {
var1: {},
/*where var1 is a model and want to add some more models in different spaces in time.*/
}
}
这是我想象的查询:
addBrand (var1) {
var brandRef = firebase.database () .ref ().child ('car/brands');
brandRef.set ({
var1: {}
});
}
我得到的输出是文本var1
,而不是它的值。
有没有办法实现这个目标?
答案 0 :(得分:1)
我做的是:
let brandRef = firebase.database () .ref ().child ('car/brands');
brandRef.child (var1).set ({
whatever: ''
});
完美无缺!
答案 1 :(得分:0)
更新了答案
你可以这样做:
addBrandInfo (brandName, brandInfo) {
let brandRef = firebase.database().ref(`car/brands/${brandName}`);
brandRef.set(brandInfo);
}
updateBrandInfo (brandName, brandInfo) {
let brandRef = firebase.database().ref(`car/brands/${brandName}`);
brandRef.update(brandInfo);
}
以下部分尝试通过示例显示每个调用如何影响firebase:
// Let's assume your firebase is empty.
addBrandInfo('tesla', { established: 2003, founder: 'Elon Musk' });
// car: {
// brands: {
// tesla: { established: 2003, founder: 'Elon Musk' }
// }
// }
addBrandInfo('ford', { established: 1905, founder: 'Henry Ford' });
// car: {
// brands: {
// ford: { established: 1905, founder: 'Henry Ford' },
// tesla: { established: 2003, founder: 'Elon Musk' }
// }
// }
updateBrandInfo('ford', { established: 1903 });
// car: {
// brands: {
// ford: { established: 1903, founder: 'Henry Ford' },
// tesla: { established: 2003, founder: 'Elon Musk' }
// }
// }
请注意最后一次通话updateBrandInfo()
如何仅更新已建立的年份,但只留下创始人Henry Ford
。
注意 car/brands/${brandName}
周围的单引号是一个回拨号,不是单引号。
答案 2 :(得分:0)
使用Angularfire2尝试以下方法:
addbrand (var1, value) {
const toSend = this.af.database.object(`/car/brands/${var1}`);
toSend.set(value);
}