[英]How to update user profile in Firebase?
I try to update user profile and i read this documentation . 我尝试更新用户个人资料,并阅读了本文档 。 But, why i can't change my displayName
?it always give me null
. 但是,为什么我不能更改我的displayName
?它总是给我null
。
And it also give me TypeError: userNow is null
. 它还给我TypeError: userNow is null
。
Which one i should follow to update / edit user profile ? 我应该遵循哪一个来更新/编辑用户个人资料?
<!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>
Wrap your code starting var userNow = firebase.auth().currentUser;
从var userNow = firebase.auth().currentUser;
开始包装代码var userNow = firebase.auth().currentUser;
in a functions. 在功能上。 And as @Andre Kool said, you need to be sure first you sidned in (as it is async operation then try to update user data as: 就像@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) {
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.