我基本上想做的是:
variable = 'whatever';
fb.set({ variable : "More Stuff" });
因此,这将产生一个看起来像这样的条目:
whatever: "More Stuff"
目前它最终只是
variable: "More Stuff"
可以这样做吗?
答案 0 :(得分:34)
对于最新版本的Firebase,请在变量名称周围使用括号:
firebase.database().ref("pathName").set({[variable] : 'MoreStuff'});
使用另一种将变量索引设置为值的方法将在数据库结构中创建一个附加层。
答案 1 :(得分:16)
是。代码没有按预期工作,因为您使用了对象文字符号,这就是它将变量名称保存为键的原因,因为这是符号的工作方式。
解决方案
foo = {};
foo[variable] = 'more stuff';
fb.set(foo);
答案 2 :(得分:0)
事实证明,@randomnamehere 的命令并没有完全达到我的预期,因为我想在引用中使用累积数字——或者在你的情况下,一个命名索引——同时仍然保留多个索引。所以正确的命令实际上应该是
firebase.database().ref(`pathName/${variable}`).set('More Stuff');
他的原始答案实际上会用其中的单个命名索引替换整个引用。我知道,因为我是通过艰难的方式学会的 :P
答案 3 :(得分:-2)
您可以创建一个空object
并将变量设置为其属性,并为其分配一个值。请看下面:
let object: any = {};
object[variable] = value