Замены, не работающие в сетке отправки через функции Firebase - PullRequest
0 голосов
/ 22 октября 2018

У меня проблемы с добавлением substitutions данных в электронные письма, отправленные из Sendgrid через Firebase Cloud Functions.

Вот мои function

exports.firestoreEmail = functions.firestore
.document('users/{id}')
  .onCreate(snap => {
    const user = snap.data();
    const msg = {
      to: user.email,
      from: 'example@example.com',
      subject: `${user.firstName}, please Verify Your Email Address`,
      templateId: 'templateID',
      substitutionWrappers: ['{{', '}}'],
      substitutions: {
        firstName: user.firstName,
        email: user.email,
        id: user.id
      }
    };
    return sgMail
      .send(msg)
      .then(() => console.log('email sent!'))
      .catch(err => console.log(err));
  });

и транзакционные *Шаблон 1009 * для templateId - это

<html>
  <head></head>
  <body>{{firstName}} - {{email}} - {{id}}</body>
</html>

. Это возвращает электронное письмо на user.email, как и предполагалось, но с пробелами, в которых должны быть данные substitutions.

После документови варианты использования здесь Я также пытался добавить

sgMail.setSubstitutionWrappers('{{', '}}');

к глобально setSubstitutionWrappers.Все еще не работает.

У меня также есть console.log(user), который возвращает данные для передачи на substitutions в консоли.

Чего мне не хватает?Данные доступны, электронная почта правильно отформатирована, и функция точно соответствует случаям SendGrid.

1 Ответ

0 голосов
/ 23 октября 2018

Мне удалось выяснить это через много часов, осознав, что substitutions и substitutionWrappers предназначены для Устаревших транзакционных шаблонов .

Вместо v3 API следует использовать dynamic_template_data вместо substitutions, а substitutionWrappers представляется заданным в качестве руля {{ }}.

  dynamic_template_data: {
    firstName: user.firstName,
    email: user.email,
    id: user.id
  }

В следующий раз я обязательно прочту и не просмотрю документацию ... скорее всего, нет.

...