从 firebase 文档复制:
// Create an initial document to update.
var frankDocRef = db.collection("users").doc("frank");
frankDocRef.set({
name: "Frank",
favorites: { food: "Pizza", color: "Blue", subject: "recess" },
age: 12
});
// To update age and favorite color:
db.collection("users").doc("frank").update({
"age": 13,
"favorites.color": "Red"
})
.then(function() {
console.log("Document successfully updated!");
});
我希望能够做到:
const var1 = 'color'
const color = 'red'
db.collection("users").doc("frank").update({
"age": 13,
"favorites.$var1$": color
})
其中 $var1$
指的是 $var1$
所保存的值,在本例中为食物、颜色或主题。
括号表示法在这种情况下不起作用,因为我将一个字符串传递给 firebase,它不会像那样解释。
预先构建字符串,例如:
const aString = 'favorites.' + var1
也不起作用,因为您不能像这样传递变量aString
:
db.collection("users").doc("frank").update({
"age": 13,
aString: "Red"
})
有办法吗?
最佳答案
使用方括号[]
:
db.collection("users").doc("frank").update({
"age": 13,
[aString]: "Red"
})
有关详细信息,请参阅 MDN - Computed property names
关于javascript - 如何将变量的值传递给 firebase 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59882044/