我是Firebase的新手,所以很抱歉这是一个愚蠢的问题。
所以我正在注册/登录页面上。在注册页面上,所有内容都可以正常工作,并且为创建的每个用户分配了一个来自表单中输入的displayName值。
function signUp() {
// Get DOM elements
var displayName = document.getElementById("first_name");
var emailInput = document.getElementById("email");
var passInput = document.getElementById("password");
var submitBtn = document.getElementById("submitBtn");
// Add login event
submitBtn.addEventListener("click", e => {
//Get email and password
const email = emailInput.value;
const pass = passInput.value;
const auth = firebase.auth();
// Sign up
const promise = auth.createUserWithEmailAndPassword(email, pass);
promise.catch(e => console.log(e.message));
var user = firebase.auth().currentUser;
if (user) {
console.log(user);
var user = auth.currentUser;
user.updateProfile({
displayName: displayName.value
});
}
});
}
但是..
当用户登录到新页面时,只有电子邮件将其传输到null。我认为这是我登录脚本中的" onauthstatatechanged"代码的问题。
function displayUserInfo() {
firebase.auth().onAuthStateChanged(firbaseUser => {
if (firbaseUser) {
console.log(firbaseUser);
}
else {
console.log("not logged in");
}
});
}
很想为此获得一些帮助:)
尝试此
function signUp() {
// Get DOM elements
var displayName = document.getElementById("first_name");
var emailInput = document.getElementById("email");
var passInput = document.getElementById("password");
var submitBtn = document.getElementById("submitBtn");
// Add login event
submitBtn.addEventListener("click", e => {
//Get email and password
const email = emailInput.value;
const pass = passInput.value;
const auth = firebase.auth();
// Sign up
const promise = auth.createUserWithEmailAndPassword(email, pass)
.then(user => {
console.log(user);
user.updateProfile({
displayName: displayName.value
});
});
}
}