Как получить идентификатор пользователя при использовании «createUserWithEmailAndPassword (email, password)» в javascript и firebase - PullRequest
0 голосов
/ 03 июля 2018

Я создаю новое веб-приложение, используя firebase и javascript. Точнее говоря, я зарегистрировал нового пользователя с \firebase.auth().createUserWithEmailAndPassword(email, password). Это работает, но когда я использовал это ключевое слово, я хочу взять UID нового пользователя и инициализировать его новой переменной в тот момент. После этого я хочу добавить нового пользователя в базу данных, используя этот ключ UID (то есть имя, возраст и т. Д.). Я попытался показать его, используя console.log(user.uid) в браузере, но он отображается как неопределенный. Пожалуйста, помогите мне.

Code.html

<input type="email" id="txtEmail" placeholder="username">
<input type="email" id="txtPass" placeholder="password">

<button id="btnSignUp" type="submit" onclick="Press()"> SignUp</button>

<script src="https://www.gstatic.com/firebasejs/5.2.0/firebase.js"></script>
<script >
        // Initialize Firebase
  var config = {
    apiKey: "api key",
    authDomain: "bigpro-c6a4c.firebaseapp.com",
    databaseURL: "https://bigpro-c6a4c.firebaseio.com",
    projectId: "bigpro-c6a4c",
    storageBucket: "",
    messagingSenderId: "id"
  };
  firebase.initializeApp(config);
</script>

<script>
     function Press(){

  var txtEmail = document.getElementById('txtEmail');
  var txtPass = document.getElementById('txtPass');
  var txtEmail = document.getElementById('txtEmail');
  var txtPass = document.getElementById('txtPass');

    var email = txtEmail.value;
    var password=txtPass.value;
  firebase.auth().createUserWithEmailAndPassword(email, password)
        .then(function(user){
          // console.log('uid',user.uid);
          console.log(user.uid);
        }).catch(function(error) {

        });

}

</script>

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

Функция createUserWithEmailAndPassword() на стороне клиента SDK не возвращает объект пользователя при успешном создании, посмотрите эти документы здесь , что объясняет, что " Если была создана новая учетная запись, пользователь вошел в систему автоматически"и не упоминает возвращаемый объект пользователя, и ни один из их примеров не имеет такой вещи.

Вы думаете ( или смотрите ) о Admin SDK - который возвращает объект пользователя .

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

firebase.auth().createUserWithEmailAndPassword(email, password)
    .then(function () {
        console.log(firebase.auth().currentUser.uid)
    }).catch(function (error) {
        console.log(error)
    });
0 голосов
/ 03 июля 2018

createUserWithEmailAndPassword возвращает обещание, содержащее UserCredential - не Пользователь .

Попробуйте этот фрагмент:

firebase.auth().createUserWithEmailAndPassword(email, password)
    .then(function(userCredential) {
      console.log(userCredential.user.uid);
    }).catch(function(error) {

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