我正在尝试编写一个函数,在用户创建时发送欢迎电子邮件。我跟着去this教程,其中说可以访问新创建的用户displayName
with user.displayName
,尽管它不断返回null
为我。我意识到发生这种情况的可能原因(如果我错了,请纠正我)是注册和设置用户的显示名称发生在客户端的两个单独步骤中,因此当onCreate
被触发,user.displayName
自然会为空。这是我的客户端代码,供参考:
fb.auth().createUserWithEmailAndPassword(payload.email, payload.password).then(user => {
return user.user.updateProfile({ displayName: payload.name, });
}).catch(/* ... */);
我正在寻找的是一个被触发的云函数user.updateProfile
。我已经调查过auth.user().onOperation
函数(发现here),但是当我尝试将此函数部署到 firebase 时,出现错误Error: Functions did not deploy properly.
(有帮助,ikr),我想这与onOperation
功能是private
(如我错了请纠正我)。
有什么办法可以做我想做的事吗?如果是这样,怎么办?或者,有没有办法设置displayName
on createUserWithEmailAndPassword
,这样我就可以继续使用onCreate
功能?
这是我目前的onCreate
code:
exports.sendWelcomeEmail = functions.auth.user().onCreate(user => {
console.log('name:', user.displayName);
});
这是我的尝试onOperation
功能:
exports.sendWelcomeEmail = functions.auth.user().onOperation(user => {
console.log('user:', user);
}, 'updateProfile');
目前没有用于更新 Firebase Auth 配置文件的 Cloud Functions 触发器。只有onCreate和onDelete。
See: 当用户更新电子邮件时的 Firebase auth onUpdate 云函数
目前无法在使用电子邮件/密码身份验证创建帐户期间设置用户的 displayName 属性。创建帐户后需要第二次调用来更新配置文件。
See: 如何设置 Firebase 用户的显示名称?
基本上,您将必须解决这些限制。随意地联系 Firebase 支持以提交功能请求让这变得更容易。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)