хорошо, поэтому я настроил Ionic webapp с формой контакта, и у меня есть форма, взаимодействующая с firebase, означающая, что вся информация о моей форме хранится в базе данных в реальном времени. Теперь я настроил SendGrid в соответствии с этим руководством:
Firestore - Database Triggered Events;https://fireship.io/lessons/sendgrid-transactional-email-guide/
Однако облачные функции не запускаются при вводе новых данных. Я не получаю никаких ошибок на консоли, и от приборной панели sendgrid нет запросов. Насколько я понимаю, когда в базе данных происходят изменения, она автоматически запускает функцию, а затем sendgrid отправляет электронные письма с соответствующими данными.
Вот мой код;
// Firebase Config
import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';
admin.initializeApp();
// Sendgrid Config
import * as sgMail from '@sendgrid/mail';
const API_KEY = functions.config().sendgrid.key;
const TEMPLATE_ID = functions.config().sendgrid.template;
sgMail.setApiKey(API_KEY);
// Emails the author when a new messages is added
export const newMessage = functions.firestore.document('messages/{messageId}').onCreate( async (change, context) => {
// Raw Data
// const post = postSnap.data();
const msgData = change.data();
// Email
const msg = {
to: msgData.email,
from: 'Your_email@gmail.com',
templateId: TEMPLATE_ID,
dynamic_template_data: {
subject: 'New Message',
name: msgData.name,
text: `Here is the message: ${msgData.message}`,
phone: msgData.phone
},
};
// Send it
return sgMail.send(msg);
});
Развертываниефункции были успешно запущены.
Пожалуйста, оцените любую помощь.
edit ////////////////////////////////////////////////// edit
Закончено использование Nodemailer.