Firebase 更改显示名称花费的时间太长。扑动与火基

Firebase 更改显示名称花费的时间太长。扑动与火基,firebase,flutter,google-cloud-firestore,firebase-authentication,Firebase,Flutter,Google Cloud Firestore,Firebase Authentication,我正在尝试创建一个我的用户列表,更新配置文件后显示名称需要一些更改,但到那时,列表的名称部分中已经有一个空值 final User user = (await _auth.createUserWithEmailAndPassword( email: emailR, password: passwordR, ) ).user; user.updateProfile(displayName: usernameR); emailc.cl

我正在尝试创建一个我的用户列表,更新配置文件后显示名称需要一些更改,但到那时,列表的名称部分中已经有一个空值

final User user = (await
    _auth.createUserWithEmailAndPassword(
      email: emailR,
      password: passwordR,
    )
    ).user;
    user.updateProfile(displayName: usernameR);

    emailc.clear();
    passwordc.clear();
    usernamec.clear();

    DateTime now = DateTime.now();
    String dt = "${now.day.toString().padLeft(2,'0')}/${now.month.toString().padLeft(2,'0')}/${now.year.toString()} ${now.hour.toString()}:${now.minute.toString()}";

    FirebaseFirestore.instance.collection("users").doc(user.uid).set({
      "id": user.uid,
      "name": user.displayName,
      "email": user.email,
      "created_at": dt,
    });

我之所以认为这是一个时间问题,是因为在我的主页上,当我第一次注册时,它会显示用户名“嘿,null”每次之后,它都会显示正确的用户名。

兄弟它的问题你获取和发送数据每件事都需要时间,因此为此,你需要使用循环进程指示器它需要1或2秒兄弟首先在firstore中更改你的名字,然后从firestore中获取,因此避免在您的名称为空。希望您喜欢我的建议这是一个异步操作,并且
user.displayName
在该操作完成之前不会更新。幸运的是,它返回了一个
Future
,因此您可以在调用时使用
wait
来等待它完成,就像您对
createUserWithEmailAndPassword所做的那样

因此:

await user.updateProfile(displayName: usernameR);