Flutter 如何使用 GetX 设置 displayName?

时间:2021-01-29 08:38:12

标签: flutter getx

我使用 GetX 创建了 Firebase 身份验证。

这是我的具有电子邮件和密码功能的createUser;

void createUser(String name, String email, String password) async {
try {
  UserCredential _userCredential = await _auth
      .createUserWithEmailAndPassword(email: email, password: password);

  User _yeniUser = _userCredential.user;
  await _yeniUser.updateProfile(displayName: name);
  String yeniUserID = _userCredential.user.uid; //User UİD'sini elde ettik
  await _firestore.collection("users").doc("$yeniUserID").set(
    {
      'eposta': email,
      'ad': _yeniUser.displayName,
      'saat': FieldValue.serverTimestamp(),
      'uid': yeniUserID,
      'aniVarmi': false,
    },
  ) ... //Catch things..

当我按下注册按钮时,它会创建 Firestore 集合,除了 'ad': _yeniUser.displayName, 它始终为空。

我没有 userModel,也没有数据库服务。只是 Authcontroller。

我该怎么办?

2 个答案:

答案 0 :(得分:0)

我假设您的 updateProfile 方法将返回用户。因此,您需要像这样再次设置 _yeniUser:

_yeniUser = await _yeniUser.updateProfile(displayName: name);

答案 1 :(得分:0)

updateProfile 后尝试调用

await _yeniUser.reload();

使用更新的显示名称刷新您的用户变量。