Skip to content

firebase.auth().currentUser.uid showing previous uid

I’m trying to set user data into the realtime database. To do that I want the uid of the current user who is logged in. But when I use the firebase.auth().currentUser.uid; I’m getting the previous uid.

Here’s the code:

// Your web app's Firebase configuration
  // For Firebase JS SDK v7.20.0 and later, measurementId is optional
  var firebaseConfig = {
    apiKey: "*",
    authDomain: "*",
    databaseURL: "*",
    projectId: "*",
    storageBucket: "*",
    messagingSenderId: "*",
    appId: "*",
    measurementId: "*"
  // Initialize Firebase

//sign up the user
  const auth =  firebase.auth();
  var user_info_reference = firebase.database();

  document.getElementById('register-form').addEventListener('submit', submitInfo);

  //signup function
  const signupForm = document.querySelector('#register-form');
  signupForm.addEventListener('submit', (e) => {

    const email = signupForm['email_up'].value;
    const password = signupForm['pass_up'].value;

    //auth with firebase
    auth.createUserWithEmailAndPassword(email, password).then(cred => {
      user_id = firebase.auth().currentUser.uid;


      var errorcode=error.code;
      var errormsg=error.message;

//saving user info
  //submitting info about name
function submitInfo(e){

    //get values
    var name = getInputval('name_up')

    //get id val
    function getInputval(id){
      return document.getElementById(id).value;

function saveInfo(name){
      var new_user_info = user_info_reference.ref('user_info/'+ auth.currentUser.uid);
        name: name

Don’t mind the (*) in the config, I just don’t want to show that information.


If you want to get the UID of the current user right after they signed in, you can get if from cred:

auth.createUserWithEmailAndPassword(email, password).then(cred => {
  user_id = cred.user.uid;