Javascript 如何在Firebase中更新用户配置文件?

Javascript 如何在Firebase中更新用户配置文件?,javascript,firebase,firebase-authentication,Javascript,Firebase,Firebase Authentication,我尝试更新用户配置文件并阅读。但是,为什么我不能更改我的displayName?它总是给我null 它还告诉我TypeError:userNow为null 更新/编辑用户配置文件时,我应该遵循哪种方法 更新用户配置文件 var authRef=firebase.auth(); authRef.onAuthStateChanged(函数(用户){ 如果(用户){ console.log('onAuthStateChanged的显示名称:'+user.displayName); }否则{ log

我尝试更新用户配置文件并阅读。但是,为什么我不能更改我的
displayName
?它总是给我
null

它还告诉我
TypeError:userNow为null

更新/编辑用户配置文件时,我应该遵循哪种方法


更新用户配置文件
var authRef=firebase.auth();
authRef.onAuthStateChanged(函数(用户){
如果(用户){
console.log('onAuthStateChanged的显示名称:'+user.displayName);
}否则{
log('notlogin');
}
});
var userNow=firebase.auth().currentUser;
userNow.updateProfile({
displayName:“Jane Q.User”,
照片URL:“https://example.com/jane-q-user/profile.jpg"
}).然后(函数(){
var displayName=userNow.displayName;
var photoURL=userNow.photoURL;
},函数(错误){
});

开始包装代码
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) {

      });
  }

请确保您的用户在尝试更新其配置文件之前已实际登录。记住firebase异步工作(包括登录)因此,在一个操作真正完成之前可能需要一些时间。hai@AndréKool,我已经从另一个页面登录,并且从
onAuthStateChanged
我可以从用户那里获得所有信息,包括电子邮件、uid等。您在哪里执行登录,可以发布该代码吗?另外,您是否直接查看fireba上的名称是否发生了更改se控制台()?如果
userNow为空。
则表明您没有成功登录。在更新用户详细信息之前,需要确保已登录。