Я получаю сообщение об ошибке, которое, как мне кажется, возвращается из sendgrid.Однако я не могу найти эту ошибку в документации по устранению неполадок Twilio / Sendgrid.Я видел некоторые ссылки на это, которые указывают, что это проблема с несоответствием версии.Вот вещь, я очень мало знаю об этом проекте.Разработчик оставил некоторое время назад.Я пытался помочь, и довольно успешно.Однако, это меня поставило в тупик.Ошибка не относится к какому-либо номеру строки или модулю (который я могу сказать)
Это из журнала консоли Firebase для облачной функции, которая пытается отправить это письмо:
{
insertId: "000000-55176214-acd2-453d-8258-048000f1e9e3"
labels: {…}
logName: "projects/wsos-base/logs/cloudfunctions.googleapis.com%2Fcloud-functions"
receiveTimestamp: "2019-06-21T16:40:19.541487656Z"
resource: {…}
severity: "ERROR"
textPayload: "TypeError: Object.values is not a function"
timestamp: "2019-06-21T16:40:13.253Z"
trace: "projects/wsos-base/traces/bdb710bad4f92297c239de4409de2323"
}
Сообщения журнала консоли ПЕРЕД вызовом sendgrid.send отображаются в журнале.Ни одно из сообщений журнала ПОСЛЕ этого вызова не отображается.Я закомментировал весь вызов, и в файле журнала не отображается никаких ошибок.Я почти на 100% уверен, что это происходит во время разговора.НО, при поиске в sendgrid я должен ожидать, по крайней мере, номер ошибки в ответе. Я подтвердил, что «catch» работает, подставив строковое сообщение об ошибке.Я вижу это сообщение об ошибке в журнале.Когда я возвращаю его к исходному улову, я получаю сообщение «TypeError ... Object.values…».Нет сообщения об ошибке.Нет номера строки.Нет модуля.
return admin.auth().getUser(user)
.then(mentorObj => {
var mentorEmail = mentorObj.email;
var menteeObj = doc2.data();
console.log("Sending to Mentor: ", mentorEmail);
const confirmationMentor = {
to: mentorEmail,
from: *******,
template_id: ********,
dynamicTemplateData: {
name: mentor.firstName,
menteeName: "MenteeNameHere"
},
};
console.log("Sent to Mentor: ", confirmationMentor);
return sendgrid.send(confirmationMentor)
.then(() => {
// console.log('Confirmation successfully sent to ' + mentorEmail);
console.log("sending to mentee");
...
})
.catch(error => console.error(error.toString()));
Простая замена вышеупомянутого error.toString () на SomeText заменяет сообщение TypeError в консоли на SomeText.Кроме того, «отправка mentee» НЕ в журналах консоли.Кроме того, ".values" нигде не упоминается во всем исходном коде.
В журналах консоли я вижу, что передается JSON:
{ to: '*****',
from: '*****',
template_id: '******',
dynamicTemplateData: { name: 'Rocky McChocolate', menteeName: 'MenteeNameHere' } }
Я поместил это в онлайн-валидатор JSON, и он недействителен.Однако я считаю, что это связано с тем, как оно отображается в журнале, а не с тем, как на самом деле выглядит JSON.Так как это работало, и все, что я изменил, был идентификатор шаблона.ну, я думаю, что я описал это выше (возможно, не в том месте).У клиента есть приложение Firebase, и оно рассылает электронные письма.Они хотели другой адрес электронной почты.Итак, я создал электронное письмо (в Twilio / Sendgrid), изменил значение template_id и ожидал отправки нового электронного письма.Вместо этого я получаю это сообщение об ошибке.Я подтвердил клиенту, что электронные письма отправлялись до того, как я начал над ним работать.