Итак, на одном документе (register.html) у меня есть этот код:
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') {
weakPass.style="color:red;";
}
else {
unexpected.innerHTML=errorMessage;
}
console.log(error);
//Handle Account Status
firebase.auth().onAuthStateChanged(user => {
if(user) {
var user = firebase.auth().currentUser;
var firstname = txtFirst.value;
var lastname = txtLast.value;
var School = dropdown.value;
user.updateProfile({
firstName: firstname,
lastName: lastname,
school: School
}).then(function() {
alert("User: " + user + " Firstname: " + user.firstName + " Lastname: " + user.lastName + " School: " + user.school);
redirect("home.html");
});
//After successful login, user will be redirected to home.html
}
});
Хотя пользователь фактически регистрируется по электронной почте и паролю, который подключен к сайту firebase, и успешно перенаправляет сайт на home.html, я не думаю, что он фактически добавляет данные пользователям "профиль".
У меня есть этот код на home.html при попытке получить данные:
//Handle Account Status
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
// User is signed in.
var firstname = user.firstName;
var lastname = user.lastName;
var school = user.school;
alert("User: " + user + " Firstname: " + firstname + " Lastname: " + lastname + " School: " + school);
} else {
// User is signed out.
}
});
Однако это не работает. Значение user равно true, но предупреждение возвращает undefined при вызове alert . Предупреждение показывает это точно:
«Пользователь: [объект объекта] Имя: не определено Фамилия: не определено Школа не определена»
Что я делаю не так? Есть ли другой / лучший способ хранения пользовательских данных с использованием Firebase?
Единственные данные, которые я храню для пользователей, - это их имя, фамилия и школа, а также очевидные данные, такие как электронная почта и пароль, потому что это работает.
Если честно, я не знаю, есть ли что-то не так с тем, как я устанавливаю данные, или извлекаю данные, или как тестировать либо.