Firebase DisplayName不会转移到另一个页面,但邮件确实可以传输



我是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
            });
        });
    }
}

最新更新