当前位置: 首页 > 知识库问答 >
问题:

如何为已发布的google play store应用程序的Firebase云函数重新指定nodemailer的凭据?

邢同
2023-03-14

Firebase Cloud Functions控制台日志截图

我在Google Play商店上发布了一个应用程序,这是我在学习android/fire base时构建的。我完全是个新手。

我添加了执行向新用户发送欢迎电子邮件等任务的云功能。但是,在部署云功能/应用程序时,有人问我我的gmail电子邮件

如何指定我的新凭据以使我发布的应用程序再次正常工作?

我在Firebase控制台上找不到与此相关的任何内容或选项。应该遵循什么样的最佳实践,以便我将来不会像这样陷入困境

编辑:

以下是屏幕截图中的文字:

sendWelcomeEmail错误:无效登录:535-5.7.8不接受用户名和密码。在535 5.7.8了解更多信息https://support.google.com/mail/?p=BadCredentialsq187-v6sm4997775iof。67-SMTP连接处的gsmtp_SMTPConnection处的formatError(/user\u code/node\u modules/nodemailer/lib/smtp connection/index.js:591:19)_SMTPConnection上的actionAUTHComplete(/user\u code/node\u modules/nodemailer/lib/smtp connection/index.js:1320:34)_响应响应。推SMTPConnection上的str(/user\u code/node\u modules/nodemailer/lib/smtp connection/index.js:356:26)_SMTPConnection上的processResponse(/user\u code/node\u modules/nodemailer/lib/smtp connection/index.js:747:20)_TLSSocket上的onData(/user\u code/node\u modules/nodemailer/lib/smtp connection/index.js:543:14)_插座在…上TLSSocket的emitOne(events.js:96:13)上的chunk(/user\u code/node\modules/nodemailer/lib/smtp connection/index.js:495:47)。在TLSSocket的readableAddChunk(\u stream\u readable.js:176:18)处发出(events.js:188:7)。可读。推送(\u stream\u readable.js:134:10)

这里是通过nodemailer发送电子邮件的功能:

 // 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个答案

司健柏
2023-03-14

我刚刚看了nodemailer留档。

看起来您在创建mailTransfer对象(您没有显示其代码)时指定了您的用户名和密码。您可能从类似StackOverflow问题的内容中复制并粘贴了代码

const mailTransport = nodemailer.createTransport(
    `smtps://user@domain.com:password@smtp.gmail.com`);

如果这是您所做的,那么您需要在那里更改密码。

戚弘和
2023-03-14

您需要为Firebase项目编辑环境变量。

要轻松配置它,您可以查看Google Cloud Shell。在此处为您的项目打开一个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)设置为新值。由于您在Google Cloud Shell中工作,因此需要--project。

 类似资料:
  • 我已经在Google Playstore中发布了一个包名为(com.syedirfanhussaini.tables)的应用程序,我想更新我现在在flutter中制作的应用程序,也在我的代码中做了所有必要的更改。 新的flutter应用程序的包名(com.syedirfanhussaini.tables)与一个已经在google play商店中发布的旧的原生应用程序相同。 现在,我的主要问题是,我

  • 我想从游戏商店删除已发布的应用程序。所以我已经取消发布,但它仍然存在于开发控制台。如何删除它。 如有任何帮助,不胜感激:)

  • 我正在为一家公司开发iPhone应用程序,他们不想将应用程序发布到应用程序商店。因此,我以299美元注册了iphone企业开发者计划。我的问题是如何在不注册UDID的情况下向公司内部员工分发应用程序?要安装此iPhone应用程序,我是否需要通过邮件向单个应用程序用户发送带有配置文件的修改后的.app文件?我熟悉IOS开发者程序,但iPhone企业开发者程序的设计不允许您将应用发布到应用商店。因此,

  • 我有多个云函数使用一个值,基本上是这样的: 问题是我想要更改页脚内容(由返回),但为了这样做(就我所研究的),我首先必须在代码中更改它,然后部署使用的每个云函数(和),这样页脚在每种类型的电子邮件上看起来都是一样的。 当然,我可以使用同时部署所有函数,但是我们曾经是多个开发人员,我们中的一些人将函数更新到我们不知道index.js中哪些函数与GCP中的相同(大约20个函数),我必须检查每一个函数,

  • 像这段代码一样,C编译器将把char*转换为bool,然后调用第一个函数,这与我的初衷不一致。有没有办法阻止编译器执行我不想要的类型转换?比如“-fno permissive”,但不幸的是,它不起作用。