【发布时间】:2018-09-25 14:44:57
【问题描述】:
每当 Firestore 中有新记录时,我都会使用 Firebase 中的一个函数发送一封电子邮件,这工作正常,但似乎 SendGrid 已更新为新版本的事务模板。
我之前在我的 SendGrid 事务模板正文中的内容是:
nombre: {{nombre}}
email: {{email}}
celular: {{celular}}
valorPropiedad: {{valorPropiedad}}
这工作正常,即它发送带有新记录数据的邮件(每次在 Firestore 中有新记录),但现在它只发送邮件但没有任何数据到达。我认为 SendGrid 发生了一些变化?还是我的功能的主题?
在我使用 Angular 5 之前,我现在使用的是版本 6。
这里是我的函数index.js的代码:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
const SENDGRID_API_KEY = functions.config().sendgrid.key
const sgMail = require('@sendgrid/mail');
sgMail.setApiKey(SENDGRID_API_KEY);
exports.firestoreEmail2 = functions.firestore
.document('domiciliarios/{domiciliarioId}')
.onCreate((snap, context) => {
const domiciliarioId = context.params.domiciliarioId;
const db = admin.firestore()
return db.collection('domiciliarios').doc(domiciliarioId)
.get()
.then(doc => {
const domiciliario = doc.data();
const msg = {
from: 'mail1@mail.com',
to: 'mail2@mail.com',
subject: 'mySubject',
templateId: 'myTemplateId',
substitutionWrappers: ['{{', '}}'],
substitutions: {
nombre: domiciliario.nombre,
email: domiciliario.email,
celular: domiciliario.celular,
valorPropiedad: `US$ ${domiciliario.valorPropiedad}`,
}
};
return sgMail.send(msg)
})
.then(() => console.log('email sent!'))
.catch(err => console.log(err))
});
【问题讨论】:
标签: firebase google-cloud-firestore sendgrid-api-v3