首页 > 解决方案 > 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()
    }

    }
    );

标签: firebaseflutterdartfirebase-authentication

解决方案


FirebaseAuth.instance.onAuthStateChanged已弃用。您应该使用authStateChangesuserChanges

不幸的是,当用户被禁用时,它们都不会发出值。

您可以尝试重新加载用户数据

FirebaseAuth.instance.currentUser.reload();

如果用户被禁用,它将抛出FirebaseAuthException ewhere e.codeis 'user-disabled'

一些未经测试的代码:

try {
      await FirebaseAuth.instance.currentUser.reload();
    } on FirebaseAuthException catch (e) {
      if (e.code == 'user-disabled') {
         // User is disabled.
      }
    }

在您的示例中,如果您reload()是 ,则流将发出null并且RegisterUi()小部件将从构建器返回。


推荐阅读