如何在密码更改后在Firebase中触发云功能?

时间:2019-09-24 14:01:51

标签: firebase google-cloud-functions

我正在尝试在用户更改密码时触发Firebase云功能,原因是 更改密码(firebase.auth()。currentUser。 updatePassword(newPassword))或重置密码(firebase.auth()。 sendPasswordResetEmail(email))。由于我不在任何地方存储密码,因此无法使用.onUpdate触发器(或任何其他触发器)。

我发现了一个类似的问题,但它仅询问有关密码更改的触发器,并且没有有关解决方法的信息:Firebase cloud function listener for password change

编辑:通过此触发器,我想向用户发送一封电子邮件,告知其密码已更改。

有人有什么想法吗?可能吗?

1 个答案:

答案 0 :(得分:1)

您想要的东西完全可以实现,但是您必须自己实现。如您所找到的链接所述,没有内置的on-password-update帐户触发器...仅onCreate and onDelete个帐户触发器。这意味着我们必须手动处理它。我将按照您前往时的方式进行处理-使用云功能向用户发送电子邮件。

我会在调用notifyUserOfPasswordChange().updatePassword()的代码行之后立即构建一个名为.confirmPasswordReset()call that cloud function from your app之类的云函数(即{ {3}}在.sendPasswordResetEmail()之后。如果我理解您的问题的重点-这是这里的真实答案。每当执行密码更新代码时,您将需要手动调用云功能。没有自动触发器。

电子邮件可以像您编写代码时一样简单或自定义。如果不确定,请从简单开始,并使用cloud函数从data参数获取目标电子邮件地址-然后对电子邮件正文使用通用消息。如果您喜欢冒险,可以考虑传递用户的UID,并使用Admin SDK查找该用户的注册电子邮件地址和显示名称,然后构建更漂亮和个性化的HTML电子邮件。

关于如何如何从Firebase云功能发送电子邮件,有很多示例-the finishing step在Firebase的GitHub页面上。