Flatter Firebase已成功更新显示名称,但仍可以';我不能进入。它是空的

Flatter Firebase已成功更新显示名称,但仍可以';我不能进入。它是空的,firebase,flutter,Firebase,Flutter,firebase用户的显示名称已更新,但仍在“null”上调用了getter 我用电子邮件和密码注册 用于注册的函数是 void _registerAccount() async { final User user = (await _auth.createUserWithEmailAndPassword( email: emailC.text, password: passwordC.text, )) .user; if (user != null) { if (!u

firebase用户的显示名称已更新,但仍在“null”上调用了getter

我用电子邮件和密码注册

用于注册的函数是

  void _registerAccount() async {
final User user = (await _auth.createUserWithEmailAndPassword(
  email: emailC.text,
  password: passwordC.text,
))
    .user;

if (user != null) {
  if (!user.emailVerified) {
    await user.sendEmailVerification();
  }
  await user.updateProfile(displayName: usernameC.text);
  final user1 = _auth.currentUser;
  Navigator.of(context).pushReplacement(MaterialPageRoute(
      builder: (context) => Home(
            user: user1,
            username: usernameC.text,
          )));
} else {
  bool _isSuccess = false;
}
}
passwordC、usernameC和emailC是控制器。 注册后,我想在屏幕上显示“显示名称”。但我试着把它打印出来,首先看到,它显示为空

这是我的主页建设方法

@override
Widget build(BuildContext context) {
initialize();
print('Reached here');
print(widget.user.displayName);
return Scaffold(
  body: Center(
    child: Container(
        child: Column(
      children: [
        Text(''),
        Center(
          child: RaisedButton(
              child: Text("Logout"),
              onPressed: () {
                FirebaseAuth.instance.signOut();
              }),
        ),
      ],
    )),
  ),
  bottomNavigationBar: BottomNavigationBar(
      onTap: (index) {
        setState(() {
          currentindex = index;
        });
      },
      currentIndex: currentindex,
      items: [
        BottomNavigationBarItem(
            title: Text("Home"), icon: Icon(Icons.account_balance_wallet)),
        BottomNavigationBarItem(
            title: Text("Home"), icon: Icon(Icons.search)),
        BottomNavigationBarItem(
            title: Text("Home"), icon: Icon(Icons.account_circle)),
      ]),
);
这里的initialize方法就是调用这两个方法

WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
初始化方法无论如何都不是问题

谢谢。

FirebaseAuth.currentUser()将只检测本地对用户所做的更改,但如果发生任何服务器端更改,它将不会检测到这些更改,除非首先调用FirebaseUser.reload(),因此您必须调用

await user.reload();

在调用update()之后。

Oh!伙计,我明白了。它正在工作。非常感谢你。