gpt4 book ai didi

firebase - 在 Cloud Functions for Firebase 中调用 sendPasswordResetEmail()

转载 作者:行者123 更新时间:2023-12-01 09:48:33 26 4
gpt4 key购买 nike

我知道 Firebase 的 Cloud Functions 仍然很新,但我正在尝试将一些客户端代码移动到云中,“注册”过程似乎是一个明显的目标。

目前,注册页面要求提供电子邮件地址,生成随 secret 码并调用 createUserWithEmailAndPassword() 。这工作正常,然后我想将“重置密码”电子邮件发送到刚刚使用的电子邮件地址,以确认电子邮件地址,并让用户有机会设置他们选择的特定密码。我可以在客户端代码中做到这一点,但我想尝试创建一个由 onCreate() 触发的函数。

那一点工作正常,但我不知道如何从 firebase 函数环境中调用 sendPasswordResetEmail()

这是到目前为止的代码:

var functions = require('firebase-functions')
const admin = require('firebase-admin')
admin.initializeApp(functions.config().firebase)

exports.createUserRec = functions.auth.user().onCreate(event => {
admin.auth().sendPasswordResetEmail(event.data.email)
})

功能日志说:
TypeError: admin.auth(...).sendPasswordResetEmail is not a function

我假设 auth() 对象与在客户端 SDK 中找到的 auth() 对象不同,这将起作用:
import * as firebase from 'firebase/app'
import 'firebase/database'
import 'firebase/auth'

var fbConfig = {
// All the required bits
}

firebase.initializeApp(fbConfig)
.
.
.
firebase.auth().sendPasswordResetEmail(emailAddress)

我简单地搜索了 firebase 函数的源代码,但我看不到任何明显的 sendPasswordResetEmail() 函数引用,所以它可能不是直接可用的(还没有?)。除了将它放回客户端代码之外,还有其他方法可以触发它吗?

最佳答案

好的,我想我终于找到了我的具体问题的答案 - auth() 调用返回的 2 个对象不一样,如下所示:

  • Client side SDK Auth object 方法包括 sendPasswordResetEmail()
  • Server side SDK Auth object 方法不包括 sendPasswordResetEmail()

  • 我希望随着时间的推移这 2 个 API 会稍微收敛,但现在看来您无法从 Cloud Function 启动密码重置。

    关于firebase - 在 Cloud Functions for Firebase 中调用 sendPasswordResetEmail(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43215479/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com