Flutter中如何将用户姓名存入Firebase Authentication账户?
在Firebase Authentication中存储用户姓名(Flutter实现)
Firebase的createUserWithEmailAndPassword方法仅支持通过邮箱和密码创建基础用户账户,若要将姓名存入Firebase Authentication的用户信息中,需在用户创建成功后,调用用户实例的updateProfile方法来设置displayName字段。
以下是修改后的完整代码:
try { UserCredential userCredential = await FirebaseAuth.instance .createUserWithEmailAndPassword( email: _emailTextController.text.trim(), password: _passwordTextController.text.trim(), ); // 更新用户姓名到Firebase Auth账户 await userCredential.user?.updateProfile( displayName: _nameTextController.text.trim(), ); // 刷新用户信息,确保本地缓存同步 await userCredential.user?.reload(); print("Created New Account with Name"); Navigator.push( context, MaterialPageRoute(builder: (context) => SignInScreen()), ); } on FirebaseAuthException catch (e) { print(e); Utils.showSnackBar(e.message); } catch (e) { print("Error updating profile: ${e.toString()}"); Utils.showSnackBar("Failed to save user name"); }
关键说明:
- 先通过
createUserWithEmailAndPassword创建用户,获取UserCredential实例 - 调用
userCredential.user?.updateProfile传入姓名参数,设置displayName - 调用
reload()方法刷新用户信息,确保本地能立即获取到更新后的姓名 - 新增通用异常捕获,处理更新姓名时可能出现的错误
后续可通过FirebaseAuth.instance.currentUser?.displayName获取已存储的用户姓名。
内容的提问来源于stack exchange,提问作者SaFaL
相关产品推荐
相关产品推荐

