我正在尝试更新正在构建的应用程序的用户的用户资料。用户信息存储在Firebase中,应用程序以运行在android上的dart编码。
我尝试从https://firebase.google.com/docs/auth/web/manage-users网站实现示例。
51 createUser() {
52 if (checkFields()) {
53 //Perform Login
54 var user = FirebaseAuth.instance.currentUser();
55 FirebaseAuth.instance
56 .createUserWithEmailAndPassword(email: _email, password: _password)
57 .then((user) {
58 var userUpdateInfo = new UserUpdateInfo();
59 user.updateProfile(userUpdateInfo)
.then((user) {
60 userUpdateInfo.displayName = _Firstname;
61 FirebaseAuth.instance
.currentUser()
.then((user) {
UserManagement().storeNewuser(user, context);
62 })
.catchError((e) {print(e);});
63 })
.catchError((e) {
64 print(e);
65 });
66 //UserManagement().storeNewuser(user, context);
67 Navigator.of(context).pop();
68 Navigator.of(context)
.pushReplacementNamed('/landingpage');
69 })
.catchError((e) {
70 print("ivlvvliyviv");
71 });
72 }
73 }
应用程序运行平稳,不会崩溃,但是当用户更新名字但在Firebase上未更改时,第60行被假定为更新了Firebase上的名字字段,这是我添加我的名字字段的地方>
Firestore.instance
.collection('/users')
.add({
'email': user.email,
'uid': user.uid,
'firstname': user.firstname,
答案 0 :(得分:0)
为了更新Firebase User
-displayName
。您只需对代码进行一些更改。
制作-var userUpdateInfo = new UserUpdateInfo();
函数外部的.then
状态变量。 &然后拨打user.updateProfile
。
或
按如下所示编辑创建用户代码:
FirebaseAuth.instance.createUserWithEmailAndPassword(email: _email, password: _password)
.then((user) {
var userUpdateInfo = new UserUpdateInfo();
userUpdateInfo.displayName = _Firstname; // Pass the value you want as displayName
user.updateProfile(userUpdateInfo).then((val){ // will Update the User at Firebase Auth
print('User Display Name Updated.');
});
});