Javascript 输入值不为';t save,当按下数组时给出未定义的值

Javascript 输入值不为';t save,当按下数组时给出未定义的值,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,我正在尝试更新firebase中的用户帐户详细信息,但我注意到,即使在我使用console.log时,其中一个字段的输入值仍显示为未定义。我在两个文件中工作,一个是loginjs文件,我在其中定义用户输入 signUpForm.addEventListener('click', function (e) { e.preventDefault(); isSigningUp = true; var email = signUpEmailInput.value; var password = si

我正在尝试更新firebase中的用户帐户详细信息,但我注意到,即使在我使用console.log时,其中一个字段的输入值仍显示为未定义。我在两个文件中工作,一个是loginjs文件,我在其中定义用户输入

signUpForm.addEventListener('click', function (e) {
e.preventDefault();

isSigningUp = true;

var email = signUpEmailInput.value;
var password = signUpPasswordInput.value;
var displayNameUser = displayNameInput.value;
var userPrivateKey = signUpPrivateKey.value;

var user = firebase.auth().currentUser;
var photoURL = "https://www.gravatar.com/avatar/" + md5(email);

if (signUpPasswordInput.value !== signUpPasswordConfirmInput.value) {
    setSignUpError('Passwords do not match!');

} else if (!displayNameUser) {
    setSignUpError("Display Name is required!");

} else if (!userPrivateKey) {
    setSignUpError('You need to set a Private Key!');
} else {
    auth.createUserWithEmailAndPassword(email, password)
        .then(function (user) {
            user.updateProfile({
                displayName: displayNameUser,
                photoURL: photoURL,
                privateKey: userPrivateKey

            }).then(function () {
                // Update successful.
                window.location.href = 'chat.html';
            }).catch(function (error) {
                // An error happened.
                window.alert("Some unexpected error happened!");
            });

            user.sendEmailVerification().then(function () {
                // Email sent.
            }).catch(function (error) {
                // An error happened.
                window.alert("Email was not able to send!");
            });
        })
        .catch(function (error) {
            // Display error messages
            setSignUpError(error.message);
        });
}});
奇怪的是,我的displayname和photoURL的用户输入工作得很好,但是当涉及到我的私钥用户输入时,它会在进入聊天页面时注册输入,而我做了一个console.log(user.privatekey),它说它是未定义的

在我的chatjs文件中,这是我推送所有用户配置文件信息的时候。chatjs文件基本上允许用户发送消息,消息和所有用户配置文件信息都存储在firebase数据库中

            messages.push({
            displayName: displayName,
            userId: userId,
            pic: userPic,
            text: myString.toString(),
            privatekey: user.privatekey,
            timestamp: new Date().getTime() // unix timestamp in milliseconds

        })
        .then(function () {
            messageStuff.value = "";

        })
        .catch(function (error) {
            windows.alert("Your message was not sent!");
            messageStuff;
        });

问题是privatekey根本没有被存储,这是我不理解的,因为它在loginjs文件中注册用户输入,但当我转到chatjs文件时,它一直说值未定义。我在谷歌搜索了所有地方,但仍然没有找到解决办法。任何帮助都将不胜感激

这是因为您从Firebase接收的Firebase
用户
对象不可自定义。当您调用
createUserWithEmailAndPassword(email,password)
方法时,它会将专门定义的用户对象返回给您-


属性
displayName
photoURL
都可以工作,因为它们已经是返回的用户的属性
privateKey
不是Firebase用户对象的现有属性,Firebase不知道如何处理未定义属性的更新调用。查看Frank解释Firebase中的用户不可自定义的地方-您需要单独存储任何额外信息。

我知道了,我假设Firebase是可自定义的,不知道,谢谢您的帮助!