方法是什么.从用于的FirebaseUser重新加载()
从文档中:
公共任务重新加载() 手动刷新当前用户的数据(例如,附着的提供程序、显示名称等).
所以我最初认为在调用user.reload()之后,输出应该是:"name of user:bar",而不是"name of user:foo".So for me it seems like it doesn't really do anything?个
Related side-question:
这也意味着我必须始终调用FirebaseAuth.instance.currentUser()以确保获得用户的最新信息?没有办法有一个FirebaseUser流,当用户信息更改时,它会发出一个新的FirebaseUser?(我指的不是Firebase.instance.onAuthStateChanged())
例子:
static stackOverflowProblem() async {
FirebaseUser user = await FirebaseAuth.instance.currentUser();
print("Name of User: ${user.displayName}"); //prints foo
//Renaming the name from "foo" to "bar"
UserUpdateInfo userInfo = UserUpdateInfo();
userInfo.displayName = "bar";
await _auth.updateProfile(userInfo);
print("\nBefore calling user.reload:");
print("Name of user: ${user.displayName}"); //prints foo
print("Name of FirebaseAuth.instance.currentUser: ${(await FirebaseAuth.instance.currentUser()).displayName}"); //prints bar
await user.reload();
print("\nAfter calling user.reload:");
print("Name of user: ${user.displayName}"); //prints foo
print("Name of FirebaseAuth.instance.currentUser: ${(await FirebaseAuth.instance.currentUser()).displayName}"); //prints bar
}
控制台输出:
I/flutter (19989): Name of User: Foo
I/flutter (19989):
I/flutter (19989): Before calling user.reload:
I/flutter (19989): Name of user: Foo
I/flutter (19989): Name of FirebaseAuth.instance.currentUser: bar
I/flutter (19989):
I/flutter (19989): After calling user.reload:
I/flutter (19989): Name of user: Foo
I/flutter (19989): Name of FirebaseAuth.instance.currentUser: bar