gpt4 book ai didi

javascript - React/Firebase - 如何确保在重定向之前发生更新?

转载 作者:行者123 更新时间:2023-12-03 00:59:30 25 4
gpt4 key购买 nike

在我的应用中,用户可以使用自己的电子邮件地址和密码进行注册(全部使用 Firebase),并且默认情况下,如果用户设置了 displayNamephotoURL,则不会设置使用电子邮件/密码注册。这就是为什么我试图在他们提交注册表单时通过添加这两个字段来更新他们的个人资料。

成功注册后,用户将被重定向到 protected 主页,我试图在其中显示,你猜对了,他们的 displayName 和照片 (photoURL )但是,即使我设置了这些字段,主页也不会按时选取它,我总是必须刷新页面才能显示这些详细信息。

请问我可以帮忙吗?\

onSubmit = event => {
const { displayName, photoURL, email, passwordOne } = this.state;
const { history } = this.props; /* eslint-disable-line */

authFunctions
.doCreateUserWithEmailAndPassword(email, passwordOne)
.then(session => {
auth.currentUser.updateProfile({
displayName,
photoURL
});
db.doCreateUser(session.user.uid, displayName, photoURL, email)
.then(() => {
this.setState({ ...INITIAL_STATE });
history.push(routes.HOME);
})
.catch(error => {
this.setState(byPropKey('error', error));
});
})
.catch(error => {
this.setState(byPropKey('error', error));
});

event.preventDefault();
};

正如您在我的代码中看到的,我正在 Firebase 上创建用户,然后将它们也添加到数据库中。我试图在创建实际用户后立即更新配置文件,但由于某种原因它没有选择它。

最佳答案

您将同时更新 Firebase 用户个人资料并在数据库中创建用户个人资料。它很可能在更新完成之前路由到主屏幕。

return auth.currentUser.updateProfile({ displayName, photoURL }).then(() => {
db.doCreateUser(session.user.uid, displayName, photoURL, email).then(() => {
this.setState({ ...INITIAL_STATE });
history.push(routes.HOME);
})
})

更新 Firebase 用户后添加“然后”,然后“然后”在数据库中创建用户个人资料。

关于javascript - React/Firebase - 如何确保在重定向之前发生更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52687447/

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