1

Я новичок в firebase и Javascript, и я пробовал много методов, чтобы получить хранилище данных пользователя с помощью идентификатора пользователя, но все, что я получаю, это данные хранятся под «undefined».не может получить firebase userID

вот мой JS код

function handleRegister() { 
    var fname = document.getElementById('fname').value; 
    var lname = document.getElementById('lname').value; 
    var email = document.getElementById('email').value; 
    var password = document.getElementById('password').value; 
    var ref = firebase.database().ref(); 
    console.log(email); 
    console.log(fname); 

     if (email.length < 4) { 
     alert('Please enter an email address.'); 
     return; 
     } 
     if (password.length < 4) { 
     alert('Please enter a password.'); 
     return; 
     } 

     firebase.auth().createUserWithEmailAndPassword(email, password) 
     .then(function(user) { 
     var uid = user.uid; 
     var postData = { 
      Firstname: fname, 
      Lastname: lname, 
      email: email, 
     }; 
     // Get a key for a new Post. 
     var newPostKey = firebase.database().ref().child('Users').push().uid; 

     var updates = {}; 
     updates['/Users/' + newPostKey] = postData; 
     // updates['/user-posts/' + '/' + newPostKey] = postData; 
     return firebase.database().ref().update(updates); 
     }) 
    } 

То, что я пытаюсь сделать, это то, что после того, как новый пользователь был зарегистрирован, я хочу, чтобы сохранить данные пользователя (т.е. первой и фамилию) в базу данных под их соответствующим uid, сгенерированным во время аутентификации. , но в настоящее время я не могу получить uid, и новый пользователь заменяет ранее введенный пользователь в БД вместо того, чтобы вводиться как новая запись.

enter image description here

ответ

2

Вы усложнять вещи немного, комбинируя части из образцов.

Сохранение пользователя, который только что зарегистрированную принимает это:

firebase.auth().createUserWithEmailAndPassword(email, password) .then(function(user) { 
    var root = firebase.database().ref(); 
    var uid = user.uid; 
    var postData = { 
     Firstname: fname, 
     Lastname: lname, 
     email: email 
    }; 
    root.child("Users").child(uid).set(postData); 
}) 
+0

Спасибо так много он работал. Я бы хотел, чтобы я мог голосовать, но у меня недостаточно очков. – Ola

+0

Приятно слышать, что это помогло. Вы должны принять мой ответ (если не сейчас, а затем позже), нажав галочку слева. –

+0

Еще раз спасибо за это – Ola