Я использую функцию в Firebase для отправки электронной почты каждый раз, когда в Firestore появляется новая запись, это работало нормально, но похоже, что 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))
});