Firebase(web)-注册时添加用户数据

问题描述 投票:0回答:1

我在以下情况下遇到麻烦:

我正在Firebase身份验证中使用电子邮件登录功能。一切正常。但是,作为注册表格的一部分,有一个用户名字段。提交表单后,将执行以下操作:

const response = await auth.createUserWithEmailAndPassword(email, password);
await response.user?.updateProfile({
   displayName: name
});

这正在使用显示名称正确更新用户配置文件。问题是createUserWithEmailAndPassword完成后,它立即触发onAuthStateChanged,这是在应用的本地状态下控制用户的唯一位置。但是,一旦触发了回调,显示名称仍然是未知的,这将导致注册后应用程序的第一个渲染不知道用户名。如果页面刷新,则会显示该名称,因为它一直存在。

我本人可以将用户数据持久保存在状态中,但这正在失去使用自动订阅的某些好处。

你们有没有解决这个问题的更好的方法?

谢谢!

Edit:我还在auth中找到了一个名为updateCurrentUser的方法,并且我尝试在更新配置文件完成后调用它。但是,这并未触发文档中所述的onAuthStateChanged

firebase firebase-authentication
1个回答
0
投票

我认为您可以尝试此操作

firebase.auth().createUserWithEmailAndPassword(email, password).then(function(user) {
    var user = firebase.auth().currentUser;
    user.updateProfile({
        displayName: name
    });      
}
© www.soinside.com 2019 - 2024. All rights reserved.