firebase - FirebaseAuth 禁用用户检查和注销?
问题描述
所以我有一个 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
或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()
小部件将从构建器返回。
推荐阅读
- math - 从直线和角度计算 3D 点的坐标
- python - 使用任何 CNN 模型(包括 VGG16)进行二元分类的验证准确率为 50%
- gstreamer - gstreamer RTSP 输入无法显示
- c# - 如何从客户端使用 Html 验证而不在 View Model 中进行验证?
- amazon-web-services - ECS中最小任务数和所需任务数有什么区别?
- c# - 如何将 TData 转换为 TLSharp 会话?
- twilio - Twilio Fax 更改出站传真的字体
- javascript - 如何在客户端操作 Excel 文件
- angular - 将 Observables 数组转换为 Observable 的结果
- db2 - currentFunctionPath 属性不适用于我的 Java 存储过程