0

我知道Firebase的云端功能还很新,但我试图将一些客户端代码移入云端,并且“注册”过程看起来像是一个明显的目标。在Firebase的云端函数中调用sendPasswordResetEmail()

当前,注册页面要求输入电子邮件地址,生成随机密码并致电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()对象不是在客户端发现了同样的auth()对象SDK,这将工作:

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) 

I b匆匆搜索了firebase函数源代码,我看不到任何明显提及的sendPasswordResetEmail()函数,所以它可能不是直接可用的(但?)。除了将其重新放回客户端代码之外,还有其他方式可以触发这一点吗?

回答

2

OK,我想我终于找到了答案,我的具体问题 - 由auth()调用返回的2个对象是不一样的,因为在这里可以看到:

我希望随着时间的推移,这些API的2将略有收敛,但现在看来,你不能启动从云功能重置密码。

相关问题