firebase 功能电子邮件发送问题

Posted

技术标签:

【中文标题】firebase 功能电子邮件发送问题【英文标题】:Issue with firebase functions email sending 【发布时间】:2019-01-05 06:10:56 【问题描述】:

我正在创建一个按钮,当按下该按钮时,将通过我的 ios swift 应用程序上的 firebase 云功能向特定的人发送电子邮件(经他们的许可),目前我正在使用的代码存在问题.目前,我正在尝试从这些已创建的函数中使用此快速入门:https://github.com/firebase/functions-samples/tree/Node-8/quickstarts/email-users:https://github.com/firebase/functions-samples,并尝试调用 sendWelcomeEmail 函数。一旦我弄清楚如何让它工作而不是欢迎电子邮件,我计划更改代码以发送自定义消息。我已经遵循了所有必要的步骤,包括验证我的谷歌帐户以及说明中所说的一切需要完成,但是当我运行我的代码来调用该函数并打印出现的错误时,我得到:

错误域=com.firebase.functions Code=16 "UNAUTHENTICATED" UserInfo=NSLocalizedDescription=UNAUTHENTICATED

我在整个互联网上查找了此错误,但没有出现任何内容。字面上没有提到这个错误,我不确定这是否是 firebase 或函数的问题,我对如何继续并使其正常工作感到困惑。我正在运行以调用此函数的代码如下:

Functions.functions().httpsCallable("sendWelcomeEmail").call(["email": "myEmail@gmail.com", "displayName": "myName"], completion:  (result, error) in
                if let error = error 
                    print(error)
                
                return
            )

我非常乐意使用除此之外的另一个功能来发送这封电子邮件,但我不知道如何编写 javascript 代码,也不知道如何制作。如果有人知道如何解决这个问题,或者通过 Firebase 云功能向某人发送自定义电子邮件的替代方法,那就太好了。

【问题讨论】:

【参考方案1】:

您误解了示例代码。您链接到的快速入门代码定义了两个云函数:sendWelcomeEmailsendByeEmail。它们是authentication triggers,当用户创建帐户然后删除其帐户时触发。仅当应用允许用户使用 Firebase 身份验证 API 创建和删除其帐户时,才会发生这种情况。

您要做的是手动调用这些函数之一,就好像它是callable function。但这些不是“可调用”函数。它们是身份验证触发器,并且在用户管理其帐户时自动调用。您不能使用 Firebase SDK 简单地调用背景类型触发器。如果您可以使用 Firebase SDK 直接调用的唯一函数是 callable functions。

因此,您在此处尝试执行的操作将永远行不通,因为您没有任何可调用的函数。请再次浏览这些文档链接,以了解对每种类型功能的期望。

【讨论】:

以上是关于firebase 功能电子邮件发送问题的主要内容,如果未能解决你的问题,请参考以下文章

SendGrid 无法发送电子邮件、firebase 功能。 (代码:403)

在云功能 Firebase 中使用 SendGrid 发送交易电子邮件

使用 firebase 功能和 nodemailer 从联系表单发送电子邮件

使用 Firebase Cloud 功能创建用户后如何发送电子邮件验证?

通过firebase云功能发送电子邮件

在 Firebase 云功能中通过 nodemailer 发送邮件是不是需要计费帐户?