Flutter Firebase не выходите из системы после перехода на другую страницу

# #firebase #flutter #dart #firebase-authentication

Вопрос:

поэтому у меня есть это приложение Flutter, доступное для навигации по ящику, службы аутентификации предоставляются Firebase. В настоящее время я работаю над flutter 2.5.1.

Поэтому, когда я вхожу в систему , приложение выводит меня на главную страницу, которую я установил, и позволяет мне нажать «Выход» (прежде чем я перейду на другой экран). Но когда я перехожу на другой экран, а затем нажимаю кнопку выхода из системы , он не выходит (визуально) , и функции, такие как получение данных от пользователя, который вошел в систему, все еще работают, возвращая данные от пользователя.

Это дает мне эту строку, когда я нажимаю кнопку выхода D/FirebaseAuth( 5447): Уведомление слушателей токенов идентификаторов о событии выхода. D/FirebaseAuth( 5447): Уведомление прослушивателей состояния аутентификации о событии выхода.

Когда это происходит, я должен выполнить горячую перезагрузку, и в этот момент приложение возвращает меня на экран входа в систему.

Это моя функция выхода из системы.

  Future cerrarSesion() {
   return FirebaseAuth.instance.signOut();
 }
 

Это мой Основной файл

 return FutureBuilder(
    future: Firebase.initializeApp(),
    builder: (context, snapshot) {
      if (snapshot.connectionState != ConnectionState.done) {
        return Center(
          child: CircularProgressIndicator(),
        );
      }
      return StreamProvider<User>.value(
        initialData: null,
        value: AuthService().usuario,
        child: MaterialApp(
          debugShowCheckedModeBanner: false,
          title: 'Flutter Demo',
          theme: ThemeData(
              fontFamily: regularFont,
              primaryColor: kPrimaryColor,
              elevatedButtonTheme: ElevatedButtonThemeData(
                  style: ElevatedButton.styleFrom(primary: kPrimaryColor)),
              scaffoldBackgroundColor: kBackgroundColor),
          home: BasePage(),
        ),
      );
    });
 

Это метод базовой страницы () (тот, который оценивает, вошел ли пользователь в систему).

  final usuario = Provider.of<User>(context);
return usuario == null ? LoginPage() : MyProfilePage();
 

Я пробовал с нулевой безопасностью и без нее, меняя версию flutter, но все равно не работает.

Я ценю руководство по этому делу, потому что я понятия не имею, в чем может быть причина этой проблемы.

Комментарии:

1. что такое final usuario = Provider.of<User>(context); возвращение?

2. @PeterHaddad Я думаю, что это работает нормально, bc при входе в систему он возвращает все атрибуты от пользователя объекта, а при выходе из системы возвращает значение null