gpt4 book ai didi

javascript - 输入值不保存,当推送到数组时给出未定义的值

转载 作者:行者123 更新时间:2023-11-30 14:31:53 25 4
gpt4 key购买 nike

我正在尝试更新 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);
});
}});

奇怪的是,我的显示名称和照片 URL 的用户输入工作得很好,但是当涉及到我的私钥用户输入时,它会在进入聊天页面时注册输入,然后我执行 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;
});

问题又是私钥根本没有被存储,这是我不理解的,因为它在 loginjs 文件中注册用户输入但是当我转到 chatjs 文件时它一直说该值是 undefiend .我到处搜索,但仍然没有找到解决方案。任何帮助将不胜感激!

最佳答案

这是因为您从 Firebase 收到的 Firebase user 对象不可自定义。当您调用 createUserWithEmailAndPassword(email, password) 方法时,它会将一个专门定义的用户对象返回给您 - check out the docs for the properties of this object .

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

关于javascript - 输入值不保存,当推送到数组时给出未定义的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51031793/

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