So basically I am trying to make the field name in this loop be EmailBody1, EmailBody2, etc.
var all = _.find(item.parts, { which: "TEXT" }); var html = all.body; console.log(html); let z = 0; for (z = 0; z < 40; z++) { // eslint-disable-next-line promise/no-nesting db.collection("Users") .doc("6IzsLbD4r4R5RXdGB5BQy6xq8Dc2") .set({ EmailBody: html, }) .then(() => { console.log("Doc successful"); return null; }) .catch((error) => { console.error("Error writing doc", error); }); } }); return null; }); }); }); }
but I have tried a few different ways like making the field name itself a variable or doing EmailBody[z] or EmailBody{z} but nothing I try seems to be working and I cannot find much info online on how to do this. Any help would be much appreciated <3
Advertisement
Answer
Two ways:
for (z = 0; z < 40; z++) { var obj = {}; obj["EmailBody"+z] = html; db.collection("Users") .doc("6IzsLbD4r4R5RXdGB5BQy6xq8Dc2") .set(obj) .then(() => { console.log("Doc successful"); return null; }) .catch((error) => { console.error("Error writing doc", error); }); }
Or (I think):
for (z = 0; z < 40; z++) { // eslint-disable-next-line promise/no-nesting db.collection("Users") .doc("6IzsLbD4r4R5RXdGB5BQy6xq8Dc2") .set({ ["EmailBody"+z]: html, }) .then(() => { console.log("Doc successful"); return null; }) .catch((error) => { console.error("Error writing doc", error); }); }