В вашей облачной функции есть две ошибки, которые вы обнаружили:
Первая из них заключается в том, что вы ДОЛЖНЫ вернуть Обещание (или значение) в фоновой облачной функции, чтобы указать платформе что это завершено. Пожалуйста, посмотрите три видео о "JavaScript Promises" из серии Firebase для получения более подробной информации по этому ключевому моменту.
Вторая проблема заключается в том, что ваше значение для поля status
«не является правильным выбором». Посмотрите на Mailchimp do c, если я не ошибаюсь, правильные значения:
subscribed
, pending
, unsubscribed
или cleaned
.
Итак, следующие изменения должны помочь:
exports.userCreated = functions.auth.user().onCreate((user) => {
const email = user.email;
// const displayName = user.name;
// make Mailchimp API request to add user
return mailchimp
.post('/lists/id/members', {
email_address: email,
status: 'subscribed', // For example, it's up to you to find the correct status
// optional: requires additional setup
merge_fields: {
"EMAIL" : email
}
})
.then(function(results) {
console.log('Successfully added new Firebase user', email, 'to Mailchimp list',results);
return null;
})
.catch(function(err) {
console.log(email);
console.log('Mailchimp: Error while attempting to add registered subscriber —', err);
return null;
});
});