Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase 用户更改扑动火焰中的流不会更改流轮廓_Firebase_Flutter_Firebase Authentication - Fatal编程技术网

Firebase 用户更改扑动火焰中的流不会更改流轮廓

Firebase 用户更改扑动火焰中的流不会更改流轮廓,firebase,flutter,firebase-authentication,Firebase,Flutter,Firebase Authentication,根据,userChanges应该将对Firebase中用户配置文件的任何更改流化。我在屏幕上添加了以下代码: class UserInfo扩展StatefulWidget{ UserInfo({Key}):超级(Key:Key); @凌驾 _UserInfoState createState()=>\u UserInfoState(); } 类_UserInfoState扩展状态{ FirebaseUser\u用户; StreamSubscriber\u用户技术; @凌驾 void initSt

根据,userChanges应该将对Firebase中用户配置文件的任何更改流化。我在屏幕上添加了以下代码:

class UserInfo扩展StatefulWidget{
UserInfo({Key}):超级(Key:Key);
@凌驾
_UserInfoState createState()=>\u UserInfoState();
}
类_UserInfoState扩展状态{
FirebaseUser\u用户;
StreamSubscriber\u用户技术;
@凌驾
void initState(){
super.initState();
_userChanges=FirebaseAuth.instance.userChanges().listen((用户){
设置状态(){
_用户=用户;
})
})
}
@凌驾
小部件构建(构建上下文){
返回容器(
子项:文本(_user?.email??“无用户”),
);
}
}
当我在应用程序外部进行更改(例如,新用户验证电子邮件地址或我在后端更改他们的显示名)时,流永远不会获取这些更改,并且
.listen()
的回调永远不会运行

userChanges() notify these cases;
  • 登录
  • 注销
  • 保存在Firestore或实时数据库(如fullName)上的任何属性都不会在FirebaseAuth服务上显示和访问

    您可以侦听firestore或rtdb文档以侦听用户文档更改


    您可以监听用户更改以进行登录注销

    更改后您等待了多长时间?在对服务器上的配置文件进行更改后,可能需要一个小时才能在其他客户端上检测到该更改。我找不到任何关于更改传播到客户端的速度的文档,但对我来说,“流”应该意味着几乎是立即的。我等待令牌过期足够长的时间,idotken refresh无论如何都会启动回调。正如所说的“可能需要一个小时……”。你等了一个小时吗?那么这些变化出现了吗?如果您不想等待,您还可以注销用户并再次登录,或者使用:idToken expires和auto refresh在一小时内强制刷新其令牌,因此“是”等待一小时令牌刷新将触发回调。但这是令牌过期的影响,而不是配置文件更改传播到客户端。无法刷新(user.reload()),因为事件来自应用程序外部(浏览器中的用户跟踪电子邮件验证链接)。可能文档对该方法的描述有误导性?displayName、email、phoneNumber、photoUrl、EmailVerified都是auth用户配置文件的属性。它们不会保存在Firestore的外部。此外,根据userChanges文档,“它提供了有关所有用户更改的事件,例如凭据链接、取消链接以及对用户配置文件进行更新时。”