Flutter Web Firebase Auth 用户在刷新后注销

Chr*_*ris 7 dart firebase-authentication flutter flutter-web

我有一个Flutter Web应用程序,用户通过Firebase登录。问题是每次刷新页面时,用户都会注销。

iOS 类似:用户在刷新后保持登录状态,但在完全关闭应用程序时被注销。

我知道这个问题表明应该用最新版本来修复它,但我已经使用了所谓的修复版本:

firebase_core:^1.20.0

firebase_auth:^3.6.0

云火存储:^3.4.1

我正在使用go_routerredirect用户(如果他未登录):

final GoRouter router = GoRouter(
  key: Get.key,
  urlPathStrategy: UrlPathStrategy.path,
  redirect: (state) {
    final String destination = state.location;

    final bool isOnStartView = destination == '/start';
    final bool isOnEmailFlow = state.subloc.contains('/email');

    if (!isOnStartView && !isOnEmailFlow && !AuthService.isLoggedIn()) {
      return '/start';
    }

    return null;
  },
  ...
Run Code Online (Sandbox Code Playgroud)

这是我的AuthService.isLoggedIn()

  static final FirebaseAuth _firebaseAuth = FirebaseAuth.instance;

  static User? get currentUser => FirebaseAuth.instance.currentUser;

  static bool isLoggedIn() {
    return _firebaseAuth.currentUser != null;
  }
Run Code Online (Sandbox Code Playgroud)

我在这里缺少什么?它到处都说应该修复它,但它对我不起作用。如果您需要更多详细信息,请告诉我!

Raj*_*rma 1

更新依赖项:firebase_auth:^3.6.4 此错误现已在最新版本中解决。

使用流 - FirebaseAuth.instance.authStateChanges()

FirebaseAuth.instance
  .authStateChanges()
  .listen((User? user) {
    if (user != null) {
      print(user.uid);
    }
  });
Run Code Online (Sandbox Code Playgroud)