Я пытаюсь выйти из 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 () без успеха.