im试图通过sendgrid发送电子邮件。火警触发器。我似乎无法从上下文中获取userId。有什么建议? Image link to error message
exports.firestoreEmail = functions.firestore
.document('users/{userId}')
.onCreate((context) => {
const userId = context.params.userId;
const db = admin.firestore();
return db
.collection("users")
.doc(userId)
.get()
.then((doc) => {
const user = doc.data();
const msg = {
to: user.email,
from: "<myEmail>",
subject: "New Follower",
// custom templates
templateId: "d-1584af76f10d475d8cc99d28e5501cf9",
substitutionWrappers: ["{{", "}}"],
substitutions :{
name: user.displayName
}
};
return sgMail.send(msg);
})
.then(() => console.log("email sent!"))
.catch((err) => console.log(err));
});
答案 0 :(得分:2)
context
应该是函数的第二个参数。命名为“上下文”并不重要-位置完全重要。第一个参数是新文档的DocumentSnapshot,因此即使您不使用它,也必须将其名称作为第一个参数:
exports.firestoreEmail = functions.firestore
.document('users/{userId}')
.onCreate((snapshot, context) => {
const userId = context.params.userId;