Как повторно указать учетные данные для nodemailer для облачных функций Firebase для опубликованного приложения Google Play Sto re?
Снимок экрана журнала консоли облачных функций Firebase
У меня есть приложение, опубликованное в магазине Google Play, которое я создал, изучая android / firebase. Я был полным новичком.
Я добавил облачные функции, которые выполняли такие задачи, как отправка приветственных писем новым пользователям. Однако, при развертывании облачных функций / приложения, меня спросили мой адрес электронной почты и пароль gmail в командной строке. Я представил их. Однако я изменил свой пароль Gmail сейчас, и Google не позволяет мне снова использовать старые пароли. Итак, мое приложение не может выполнить эти облачные функции сейчас из-за ошибок аутентификации. Скриншот журнала ошибок прилагается.
Как я могу указать свои новые учетные данные, чтобы опубликованное приложение снова стало работать нормально?
Я не смог найти ничего подходящего или опции на консоли Firebase для этого. Каким рекомендациям следует следовать, чтобы в будущем я не застрял так, чтобы я мог свободно менять пароли для учетных записей разработчиков и не влиять на мои приложения?
Редактировать:
Вот текст со скриншота:
sendWelcomeEmail Ошибка: Неверный логин: 535-5.7.8 Имя пользователя и пароль не приняты. Подробнее на 535 5.7.8 https://support.google.com/mail/?p=BadCredentials q187-v6sm4997775iof.67 - gsmtp на SMTPConnection._formatError (/user_code/node_modules/nodemailer/lib/smtp-connection/index.js:591:19) в SMTPConnection._actionAUTHComplete (/user_code/node_modules/nodemailer/lib/smtp-connection/index.js:1320:34) в SMTPConnection._responseActions.push.str (/user_code/node_modulesma) smtp-connection/index.js:356:26) в SMTPConnection._processResponse (/user_code/node_modules/nodemailer/lib/smtp-connection/index.js:747:20) в SMTPConnection._onData (/user_code/node_modules/nodemailer) lib/smtp-connection/index.js:543:14) в TLSSocket._socket.on.chunk (/user_code/node_modules/nodemailer/lib/smtp-connection/index.js:495:47) в emitOne (events.js):96:13) в TLSSocket.emit (events.js:188:7) в readableAddChunk (_stream_readable.js:176:18) в TLSSocket.Readable.push (_stream_readable.js:134:10)
Вот функция отправки писем через нодмейлер:
// Sends a welcome email to the given user.
function sendWelcomeEmail(email, displayName) {
const mailOptions = {
from: `noreply@example.com`,
to: email
};
mailOptions.subject = `Welcome to ${APP_NAME}!`;
mailOptions.text = `Hey ${displayName || ''},\n\nWelcome to ${APP_NAME}!...........`;
return mailTransport.sendMail(mailOptions).then(() => {
console.log('New welcome email sent to:', email);
});
}
2 ответа
Вам нужно отредактировать переменные окружения для вашего проекта Firebase.
Чтобы легко его настроить, вы можете взглянуть на Google Cloud Shell. Откройте оболочку для вашего проекта здесь.
И затем, следуйте этому, чтобы получить / установить переменные среды.
РЕДАКТИРОВАТЬ:
В Google Cloud Shell команда
firebase functions:config:get --project <project_id_here>
выводит текущую конфигурацию среды для вашего проекта в виде JSON. Вы можете использовать это для проверки ваших переменных среды.
Для вашей проблемы вам может понадобиться использовать команду,
firebase functions:config:set gmail.password="your_password_here" --project <project_id_here>
установить переменную окружения (т.е. gmail.password) в новое значение. --Project требуется, так как вы работаете в Google Cloud Shell.
Я только что посмотрел документацию по nodemailer.
Похоже, вы указываете свое имя пользователя и пароль при создании mailTransport
объект (для которого вы не показываете код). Вы, вероятно, скопировали и вставили код из чего-то вроде этого вопроса Stackru
const mailTransport = nodemailer.createTransport(
`smtps://user@domain.com:password@smtp.gmail.com`);
Если это то, что вы сделали, тогда вам нужно сменить пароль.