如何设置firebase触发器-邮件和云函数

s6fujrry  于 2023-01-31  发布在  其他
关注(0)|答案(1)|浏览(199)

我在设置触发邮件扩展沿着云函数时遇到了很多麻烦。这里我将逐步解释如何完成这些事情!

huwehgph

huwehgph1#

我们开始工作吧。

设置火力基地

  • 如果您还没有here,请创建一个项目。
  • 要使用trigger-mail扩展和云功能,需要将项目升级到BLAZE Plan
  • 现在就去做(检查窗口的左下角)。
  • 继续设置firestore数据库和storage。这对于扩展和函数的工作都是必要的。

配置扩展

  • 单击Build下的Extensions面板。
  • 找到Trigger Mail扩展并单击安装。

以下是主要部分:

  • 单击"下一个" 2次。

授予所有必要的权限。

您可以在此链接您要从中发送邮件的邮件帐户

迎接您的将是这样一个屏幕-〉

统一资源标识符

如果我链接的邮件是xyz123@gmail.com,这将是你的SMTPS格式:
电子邮件地址://www.example.com xyz123@gmail.com @ smtp.gmail.com:465
SMTPS connection URI字段中使用此值。

密码

这是一个有点忙乱的步骤。

  • 在Gmail here中启用双重授权。
  • 现在,您需要创建应用程序密码

  • 单击生成。
  • 你会看到这样一个屏幕-〉

  • 您必须在SMTP密码字段中输入此密码,然后单击创建密码
    • 注意:**请勿输入空格。
  • 等待一段时间,以完成该过程。
  • 完成后,您的屏幕将看起来像这样-〉

  • 您可以保留与原始邮件相同的Gmail默认回复地址,或您选择的一个。
  • 电子邮件文档收集相同。
  • 单击***安装扩展。***

    • 这将需要几分钟时间。***

瞧,你成功了!

发送一封测试邮件。

现在,为了发送邮件,您需要将一个文档添加到firestore数据库中的mail集合。
查找官方文档here

to: ['someone@example.com'],
message: {
  subject: 'Hello from Firebase!',
  text: 'This is the plaintext section of the email body.',
  html: 'This is the <code>HTML</code> section of the email body.',
}
  • 这是要发送邮件的文档格式。
    ***"收件人"***为array,***"消息"***为map
  • 让我们手动创建一个集合-〉

这是我的文档窗口

  • 让我们保存此文档。
  • 如果操作正确,在几秒钟内,您将看到文档自动更新为更多字段,如attempts等。
  • 检查您的邮件中的电子邮件。

编写函数。

  • 让我们设置Firebase CLI
  • 下载节点. js here
  • 运行安装程序。
  • 复制驱动器中的安装路径。
  • 我有我的安装在C:\Program Files\nodejs下。

  • 在系统托盘中搜索environment variables

  • 将目录粘贴到System Variables -> Path下,新建并添加。
  • 按照以下步骤下载并安装Firebase CLI
  • 使用上述文档登录firebase cli。
  • 在代码编辑器中打开项目,然后在终端中键入firebase init
  • 选择项目并添加函数支持。它将创建一个新的文件夹functions
  • 我写了一个函数,当一个新用户被创建时,它会发送一封入职电子邮件。
const functions = require("firebase-functions");
const admin = require("firebase-admin");

admin.initializeApp();

//  sends mail if new user is regestired
exports.userOnboardingMail = functions.auth.user().onCreate((user)=>{
  admin.firestore().collection("mail").add({
    "to": [user.email],
    "message": {
      "subject": "Welcome to My app! Explore functionalities here.",
      "text": `Hi, ${user.displayName}. \n\nIt's nice to have you on-board.`,
    },
  })
      .then((result) => {
        console.log(
            "onboarding email result: ", result,
            "\ntime-stamp: ", Date.now);
      });
});

希望我能让你的一天轻松一点:)
如果有帮助的话就投赞成票。

其他链接

学习firebase云功能here.真心推荐这个频道。
官方版Trigger-maildocs
Firebase CLI文档
Firebase云函数docs

相关问题