我想使用一个变量作为字典中的键。
var uid = "123456";
await admin
.firestore()
.collection("shop")
.doc(shopId)
.update({
"role.${uid}": "reader",
});
但是上面的代码不起作用。
结果就在这里。enter image description here
如何将uid
设置为role
的密钥?
2条答案
按热度按时间mrfwxfqh1#
如果我正确理解了您要做的事情,您应该使用模板文字(反引号)而不是常规字符串(双引号)。
例如:
krugob8w2#
为了在Firestore更新操作中使用uid变量作为动态键,需要在字符串文字两边使用反引号而不是单引号或双引号,并使用字符串插值语法${}将uid变量的值插入到字符串中。
通过使用反勾号和字符串插值,您可以将uid变量值作为角色字段的动态键包含在字符串文字中。请注意,方括号内的字符串将作为表达式计算,因此uid变量值将插入到结果字符串中。
在这种情况下,同时使用方括号[]和字符串插值法${}是有效的,因为方括号用于定义对象中的动态属性键,而字符串插值法语法${}允许您将变量的值插入字符串。
将字符串文字括在方括号内时,生成的表达式将作为对象属性的键进行计算。通过在方括号内使用${}语法,可以将uid变量的值插入到生成的字符串中。这样,就可以根据uid变量的值动态生成键。