Выход из FirebaseAuth () во Flutter не работает - PullRequest
0 голосов
/ 29 сентября 2019

Я пытаюсь выйти из FirebaseAuth, но несмотря на то, что пользователь вышел из строя после того, как я вышел из системы, кажется, что экземпляр как-то все еще кэшируется.Когда я выхожу и снова вхожу, user.metadata.lastSignInTime и FirebaseAuth.instance.hashCode остаются такими же, как и до выхода из системы.Это приводит к тому, что мое входящее сообщение отображается даже после второго входа в систему, так как я проверяю, user.creationTime == user.lastSignInTime.

Мой метод _logOut:

void _logOut(BuildContext context) async {
  await GoogleSignIn().signOut();
  await FirebaseAuth.instance.signOut();
}

Начальная строка SignUp Page вызываетсякогда user == null:

class SignUpPage extends StatefulWidget {
  final String title;

  SignUpPage({Key key, this.title}) : super(key: key);

  @override
  SignUpPageState createState() => SignUpPageState();
}

class SignUpPageState extends State<SignUpPage> {
  final FirebaseAuth _auth = FirebaseAuth.instance;
  bool isloaded = false;
  @override
  void initState() {
    super.initState();
//detects when user logs out:
    _auth.onAuthStateChanged.listen((user) => {
          if (user == null)
            {
//This page is the first one in the route
              Navigator.of(context).popUntil((route) => route.isFirst),
              setState(() {
                isloaded = true;
              }),
            }
        });
    // Enabled persistent log-ins by checking the Firebase Auth instance for previously logged in users
    _auth.currentUser().then((user) {
      setState(() {
        isloaded = true;
      });
      if (user != null) {
        _pushPage(context, HomePage());
      }
    });
  }

  @override
  Widget build(BuildContext context) {
//Building Page here
}
}

Я только начинаю с Flutter, но я попробовал все, что только мог придумать, чтобы фактически полностью удалить FirebaseAuth.instance в _logOut () без успеха.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...