首页 > 解决方案 > 云函数:地图中未读取的值

问题描述

为什么我无法在嵌套地图中读取以下变量?

for (const key in doc.data().category) {
  const location = doc.data().location;  // declared but it's value is never read"
  const mainCategory = doc.data().category; // declared but it's value is never read"
  const subCategory = doc.data().category[key]; // declared but it's value is never read"

  categoryCount.doc('categoryCount')
  .set({ location: { mainCategory: { subCategory: "test" } } }, 
  { merge: true })
  .catch((error) => console.log(error));

控制台日志澄清:

console.log(location); // "New York"
const map = { location: { mainCategory: { subCategory: true } } };
console.log(map);  // "location": {"mainCategory": {"subCategory": true}}

标签: javascriptgoogle-cloud-firestoregoogle-cloud-functions

解决方案


如果您想使用变量的值作为属性的名称,您必须告诉 JavaScript 您要插入该值(而不是仅仅命名键):

{ [location]: { mainCategory: { subCategory: "test" } } }

注意 . 周围的方括号location

另请参阅:方括号 Javascript 对象键


推荐阅读