это дано неопределенным. не могу получить имя из Firebase - PullRequest
1 голос
/ 29 апреля 2020

Я хочу получить пользовательские данные из firebase после входа в систему. когда я получаю имя из базы данных, оно предоставляет значение как неопределенное .. почему?

var user = firebase.auth().currentUser;

if(user != null ){

  var email_id = user.email;
  var uid = user.uid;
  var name = user.userName; 
  var user = user;

  document.getElementById("user_para").innerHTML = "Welcome User : " + email_id;
  document.getElementById("user_para1").innerHTML = "Welcome User : " + uid;
  document.getElementById("user_para2").innerHTML = "Welcome User : " + name;


}

1 Ответ

1 голос
/ 29 апреля 2020

Помните, что firebase auth сохраняет только следующие данные:

email: 'user@example.com',
emailVerified: false,
phoneNumber: '+11234567890',
password: 'secretPassword',
displayName: 'John Doe',
photoURL: 'http://www.example.com/12345678/photo.png',
disabled: false

Таким образом, user.userName не существует.

Вы можете использовать displayName для сохранения имя пользователя, но если вы действительно используете его для сохранения имени, вы можете создать узел с именем users в базе данных реального времени firebase, где вы можете сохранить имя пользователя на основе UID, что-то вроде этого:

users
   ->akdjf231dkeimdla
         ->username: jamesbond007

После того, как ваш код может быть :

var user = firebase.auth().currentUser;

if(user != null ){

 var email_id = user.email;
 var uid = user.uid;
 var name = user.displayName;

 document.getElementById("user_para").innerHTML = "Welcome User : " + email_id;
 document.getElementById("user_para1").innerHTML = "Welcome User : " + uid;
 document.getElementById("user_para2").innerHTML = "Welcome User : " + name;

 firebase.database().ref('/users/' + uid).once('value').then(function(snapshot) {
   //Here are reading the username from the database
   var username = snapshot.val().username;

 });

}

Если вы используете базу данных реального времени firebase, не забудьте добавить библиотеку базы данных реального времени firebase.

Для получения дополнительной информации: https://firebase.google.com/docs/auth/admin/manage-users

...