[英]How to use I-Value in for-loop
嗨,我正在使用 javascript 和 firebase,但遇到了一个问题。
在创建数据库条目后,我想向我的数据库中列出的每封电子邮件发送相同的电子邮件:
如果我使用没有 for 循环的代码,一切正常:
to: snap.data().email,
我尝试了几种方法来使用 i 值作为参数 - 其中一个不起作用的是在下面的代码中:
to: snap.data().email.concat(i.toString()),
exports.sendEmail = functions.firestore
.document('user/{userId}')
.onCreate((snap, context) => {
for(var i = 1; i <= snap.data().number; i++) {
const mailOptions = {
from: `***********`,
to: snap.data().email.concat(i.toString()),
subject: `From ${snap.data().name}`,
html: `<h1>Me ${snap.data().name} </h1>
<p>
<b>Hallo - </b>${snap.data().content}<br>
</p>`
};
return transporter.sendMail(mailOptions, (error, data) => {
if (error) {
console.log(error)
return
}
console.log("sent")
});
};
});
如果您能帮助我,我将不胜感激:-)
如果你想获得email1
和email2
,...属性,你可以做如下
to: snap.data()['email'+i],
为了获得更好的代码,您可以将snap.data()
存储到一个变量中,例如
const data = snap.data();
并一遍又一遍地使用它
to: data['email'+i]
你也有return
在你的循环中,这意味着在第一个之后它将退出循环
您可以将电子邮件存储为一个数组,而不是一个一个,然后您可以简单地循环并发送电子邮件,然后您不需要数字,因此您的数据形状将像
{
content: string;
name: string;
emails: string[];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.