Создание Firebase User и одновременное добавление данных в базу данных. - PullRequest
0 голосов
/ 03 февраля 2019

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

В настоящее время мой код работает, просто я не понимаю, почему, когда мои данныесохранить в моей базе данных, имя (которое, как предполагается, будет созданным пользователем UID) показывает "неопределенный".но данные, которые были получены и сохранены, верны.

Моя база данных Firebase, которая показывает неопределенное: https://imgur.com/ATRsmKe

Мой код JS, который я пытаюсь сохранить и создать пользователя:

/*Show Login User*/

// Firebase Variables
var auth = firebase.auth();

$(document).ready(function () {

  //Pass parameter from form to Firebase
  $('.addpic').on('submit', event => {
    event.preventDefault();
    const name = $('#name').val();
    const hp = $('#hp').val();
    const email = $('#email').val();
    const password = $('#password').val();
    const role = $('#role').val();

    //Firebase user authentication
    firebase.auth().createUserWithEmailAndPassword(email, password)
      .then(user => {

        //set data into User database
        firebase.database().ref('Admin/Person In Charge' + "/" + user.uid).set({
          Name: name,
          ContactNo: hp,
          Email: email,
          Password: password,
          Role: role
        }).then(success => {
          console.log(user);
          window.alert("Registered");
          window.location = "user.html";
        });
      })
      .catch(function (error) {

        var errorCode = error.code;
        var errorMessage = error.message;

        window.alert("Error : " + errorMessage);
      });
  });
});

Я хочу, чтобы мои данные былисохраняется под UID созданного пользователя.Я перепробовал все возможные решения, но ни одно из них не работает для меня.

1 Ответ

0 голосов
/ 03 февраля 2019

Вы должны взглянуть на тип возврата createUserWithEmailAndPassword.Если я правильно читаю документы, он возвращает экземпляр firebase.auth.UserCredential, а не пользователя.Я думаю, что вам действительно нужно углубиться еще на один уровень в этот объект учетных данных и получить user.uid.

Пример

firebase.auth().createUserWithEmailAndPassword(email, password)
  .then(userCredential => {

    //set data into User database
    firebase.database().ref('Admin/Person In Charge' + "/" + userCredential.user.uid).set({
      Name: name,
      ContactNo: hp,
      Email: email,
      Password: password,
      Role: role
    }).then(success => {
      console.log(user);
      window.alert("Registered");
      window.location = "user.html";
    });
  })

Вы можете выяснить это в будущем, проверив значениевашего user в вашем then через console.log().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...