Пользовательский интерфейс Firebase отображает нулевое значение для displayName под пользовательским объектом - PullRequest
0 голосов
/ 04 ноября 2018

Я использую веб-интерфейс Firebase, чтобы пользователи могли зарегистрироваться в моем проекте Firebase. Затем я использую облачную функцию (в Node.js):

exports.newUserUpdate = functions.auth.user().onCreate(user => {})

, чтобы затем отправить вновь созданному пользователю электронное письмо. Когда я читаю в user.displayName или console.log объект user, он отображает displayName как ноль. Это похоже на то, что displayName не был представлен при регистрации.

Я использую Firebase UI Web 3.4.1.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Это известная проблема: https://github.com/firebase/firebase-functions/issues/95

При создании пользователя последовательно вызываются следующие API:

  • auth.createUserWithEmailAndPassword для создания электронной почты / пароля пользователя.
  • user.updateProfile для установки отображаемого имени для пользователя

onCreate Событие запускается при первом вызове, когда отображаемое имя еще не известно.

0 голосов
/ 04 ноября 2018

Документация говорит,

Установить наблюдателя состояния аутентификации и получить данные пользователя

Для каждой страницы вашего приложения, для которой требуется информация о зарегистрированном пользователе, прикрепить наблюдателя к объекту глобальной аутентификации. Этот наблюдатель вызывается всякий раз, когда изменяется состояние входа пользователя.

Присоедините наблюдателя с помощью метода onAuthStateChanged. Когда пользователь успешно войдя в систему, вы можете получить информацию о пользователе в наблюдатель.

firebase.auth().onAuthStateChanged(function(user) {
  if (user) {
    // User is signed in.
    var displayName = user.displayName;
    var email = user.email;
    var emailVerified = user.emailVerified;
    var photoURL = user.photoURL;
    var isAnonymous = user.isAnonymous;
    var uid = user.uid;
    var providerData = user.providerData;
    // ...
  } else {
    // User is signed out.
    // ...
  }
});
...