gpt4 book ai didi

javascript - 在使用 createUserWithEmailAndPassword 时添加 displayName

转载 作者:行者123 更新时间:2023-12-04 02:47:31 27 4
gpt4 key购买 nike

我想将显示名称添加到刚刚创建的用户。但是当我 createUserWithEmailAndPassword 它说我的 currentUser 为空。哪里不对了?

var name = document.getElementById("name").value;
var username = document.getElementById("username").value;
var email = document.getElementById('email').value;
var password = document.getElementById('password').value;
// Sign in with email and pass.
// [START createwithemail]
firebase.auth().createUserWithEmailAndPassword(email, password).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// [START_EXCLUDE]
if (errorCode == 'auth/weak-password') {
alert('The password is too weak.');
} else {
console.error(error);
}
// [END_EXCLUDE]
});
// [END createwithemail]
var user = firebase.auth().currentUser;
user.updateProfile({
displayName: username
}).then(function() {
// Update successful.
}, function(error) {
// An error happened.
});
document.getElementById("submitButton").innerHTML = "Loading...";
$("#submitButton").css("background-color", "#efefef");
$("#submitButton").css("cursor", "init");
$("#submitButton").css("color", "#aaa");
registerUserToDB(username, name, email);
console.log("shouldhave worked");

最佳答案

createUserWithEmailAndPassword与 Firebase 中的几乎所有其他函数一样,它是一个异步调用。您创建了用户(很可能成功),但在您尝试获取 currentUser 后立即.几乎在所有情况下,您都会尝试获取 currentUser在 Firebase 完成创建用户之前。

重写内部回调:

firebase.auth().createUserWithEmailAndPassword(email, password).then(function(user) {
// [END createwithemail]
// callSomeFunction(); Optional
// var user = firebase.auth().currentUser;
user.updateProfile({
displayName: username
}).then(function() {
// Update successful.
}, function(error) {
// An error happened.
});
}, function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// [START_EXCLUDE]
if (errorCode == 'auth/weak-password') {
alert('The password is too weak.');
} else {
console.error(error);
}
// [END_EXCLUDE]
});
.then将被召唤成功和 function(error)将在错误时调用。您想在用户创建成功后设置您的用户。

有些人不喜欢嵌套回调,因此您可以创建一个获取当前用户并在成功时调用该函数的函数。

文件:

Firebase Promises

Async, callbacks

关于javascript - 在使用 createUserWithEmailAndPassword 时添加 displayName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37413111/

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