Замены, не работающие в сетке отправки через функции Firebase

1

У меня возникают проблемы с добавлением данных 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: '[email protected]',
      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));
  });

и шаблон транзакции для templateId равен

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

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

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

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

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

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

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

Теги:
firebase
google-cloud-functions
sendgrid

1 ответ

1
Лучший ответ

Мне удалось понять это через много часов, понимая, что substitutions и substitutionWrappers предназначены для Legacy Transactional Templates.

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

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

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

  • 0
    Отличный ответ, я тоже там потерялся, эта информация нигде не доступна
  • 0
    Большое спасибо, смотрел это видео, но застрял, когда параметры не были переданы.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню