所以我有一个 onAuthStateChanged 流,我想检查用户是否已被 Firebase 控制台上的管理员禁用以注销用户并再次转到登录页面,这是我的流检查用户是否已登录,但是如何检查用户是否被 Firebase 控制台禁用:\
这是我的流的简单代码:
return StreamBuilder<FirebaseUser>(
stream: FirebaseAuth.instance.onAuthStateChanged,
builder: (BuildContext context , snapshot){
if (snapshot.connectionState == ConnectionState.active) {
FirebaseUser user = snapshot.data;
if (user == null) {
return RegisterUi();
}
;
} else {
return HomePage()
}
}
);
FirebaseAuth.instance.onAuthStateChanged
已弃用。
你应该使用authStateChanges
or userChanges
.
不幸的是,当用户被禁用时,它们都不会发出值。
您可以尝试使用以下命令重新加载用户数据
FirebaseAuth.instance.currentUser.reload();
如果用户被禁用,它将抛出一个FirebaseAuthException e
where
e.code
is 'user-disabled'
.
一些未经测试的代码:
try {
await FirebaseAuth.instance.currentUser.reload();
} on FirebaseAuthException catch (e) {
if (e.code == 'user-disabled') {
// User is disabled.
}
}
在你的例子中,如果你reload()
,流将发出null
和RegisterUi()
小部件将从构建器返回。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)