我希望应用程序在用户注册时保存displayName
我试过了:

  Future<void> signUp() async {
    try {
      FirebaseUser user = (await FirebaseAuth.instance
              .createUserWithEmailAndPassword(
                  email: email.text, password: password.text))
          .user;
      UserUpdateInfo userUpdateInfo = new UserUpdateInfo();
      userUpdateInfo.displayName = name.text;
      await user.reload();
      showInSnackBar("User name ${user.displayName}");

      try {
        await user.sendEmailVerification();
        showInSnackBar("Email verification sent");
      } catch (e) {
        print(e);
      }
    } catch (e) {
      String errorCode = e.code;
      print(e);
      if (errorCode == "ERROR_EMAIL_ALREADY_IN_USE") {
        showInSnackBar("This email is already in use");
      } else {
        showInSnackBar("Somthing went wrong! Try again later");
      }
    }
  }

使用此方法,SnakBardisplayName返回null

最佳答案

设置userUpdateInfo.displayName = name.text不足以实际更改用户帐户上的名称。您必须调用updateProfile()并将其传递给UserUpdateInfo对象才能实际更改帐户。

await user.updateProfile(userUpdateInfo)

08-17 17:54