Как обновить профиль пользователя в Firebase? - PullRequest
0 голосов
/ 24 апреля 2018

Я пытаюсь обновить профиль пользователя и читаю эту документацию . Но почему я не могу изменить свой displayName? Это всегда дает мне null.

И это также дает мне TypeError: userNow is null.

Какой я должен следовать, чтобы обновить / отредактировать профиль пользователя?

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Update User Profile</title>
        <script src="https://www.gstatic.com/firebasejs/4.11.0/firebase.js"></script>
        <script src="core.js">
        </script>
    </head>
    <body>
        <script>
            var authRef = firebase.auth();
            authRef.onAuthStateChanged(function(user) {
                if (user) {
                    console.log('Display name onAuthStateChanged : '+user.displayName);
                } else {
                    console.log('not login');
                }
            });
            
            
            var userNow = firebase.auth().currentUser;
            userNow.updateProfile({
                displayName: "Jane Q. User",
                photoURL: "https://example.com/jane-q-user/profile.jpg"
            }).then(function() {
                var displayName = userNow.displayName;
                var photoURL = userNow.photoURL;
            }, function(error) {
                
            });

        </script>
        <script src="js/jquery-3.3.1.min.js"></script>
    </body>
</html>

1 Ответ

0 голосов
/ 24 апреля 2018

Оберните ваш код, начиная с var userNow = firebase.auth().currentUser; в функции. И, как сказал @Andre Kool, вы должны быть уверены, что сначала приняли участие (поскольку это асинхронная операция, а затем попытайтесь обновить данные пользователя как:

    var authRef = firebase.auth();
    authRef.onAuthStateChanged(function(user) {
        if (user) {
            console.log('Display name onAuthStateChanged : '+user.displayName);
            _updateUserData();
        } else {
            console.log('not login');
        }
    });

    fucntion _updateUserData(){
      var userNow = firebase.auth().currentUser;
        userNow.updateProfile({
        displayName: "Jane Q. User",
        photoURL: "https://example.com/jane-q-user/profile.jpg"
      }).then(function() {
        var displayName = userNow.displayName;
        var photoURL = userNow.photoURL;
      }, function(error) {

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