我正在客户端注册新用户,然后我在某个地方阅读,其他社区成员也告诉我,在云中拥有此功能将自动触发它,并在每个用户创建后发送电子邮件:
exports.sendWelcomeEmail = functions.region('europe-west6').auth.user().onCreate((user) => {
user.sendEmailVerification().then(function () {
// Email sent.
}).catch(function (error) {
// An error happened.
});
});
问题是(根据文档(sendEmailVerification()
在Admin SDK中不起作用,仅在Client SDK中起作用。我是不是遗漏了什么?
functions.auth.user().onCreate(user)
函数有一个用户参数user
,它是UserRecord
类型。它没有sendEmailVerification
。
请参阅https://firebase.google.com/docs/reference/functions/providers_auth_#userrecord
sendEmailVerification,根据客户端SDK中存在的文档,通过https://firebase.google.com/docs/reference/js/firebase.User.
截至2020年,存在一个尚未解决的github问题:https://github.com/firebase/firebase-admin-node/issues/46它有一些解决方法(包括调用REST API,或在服务器上安装Firebase客户端SDK(
但是,如果您有SMTP服务器,并且更喜欢通过该服务器发送电子邮件,请参阅https://firebase.google.com/docs/auth/admin/email-action-links.
参考文献
- https://firebase.google.com/docs/reference/functions/providers_auth_.userbuilder#oncreate
- https://firebase.google.com/docs/reference/js/firebase.User
- https://github.com/firebase/firebase-admin-node/issues/46
- https://firebase.google.com/docs/auth/admin/email-action-links