【问题标题】:Flutter [firebase_auth] onAuthStateChanged stoped listeningFlutter [firebase_auth] onAuthStateChanged 停止监听
【发布时间】:2026-01-25 10:20:02
【问题描述】:

onAuthStateChanged 不再监听更改,所以基本上,当我创建新帐户或登录现有帐户时,它卡在加载微调器中,但用户确实在 firebase 用户中创建了它。 我正在使用StreamBuilder:

   home:StreamBuilder(
            stream: FirebaseAuth.instance.authStateChanges(),
              builder: (ctx, userSnapshot) {
              if (userSnapshot.hasData) {
                return SellerScreen(docsRef);
              }
              return AuthScreen();
            },
          ),

我在控制台中得到了什么:

D/FirebaseAuth( 9477): Notifying id token listeners about user ( VQghDgOucFdCcWLdPlCJNTd5eO72 ).
D/FirebaseAuth( 9477): Notifying auth state listeners about user ( VQghDgOucFdCcWLdPlCJNTd5eO72 ).

【问题讨论】:

    标签: firebase flutter dart firebase-authentication


    【解决方案1】:

    控制台中的代码规定用户要么已创建,要么已登录。

    您的问题可能在于您的微调器小部件在代码中的位置... 我可以提供一个 sn-p 看看我是否可以提供帮助?

    ...无论如何,我通常做的是:

    bool loading = false;
    @override
    Widget build(BuildContext context) {
        return loading ? Loading() : HomeScreen();
    }
    

    有了这个,我告诉 Flutter 在用户处于 createdsigned in 时显示加载屏幕。 bool 类型加载只是在加载小部件的truefalse 状态之间切换

    【讨论】: