Я реализую поток аутентификации в своем приложении Flutter.
После попытки входа в систему CheckAuth (который проверяет, был ли пользователь подписан или нет, а затем открывает домашний экран или соответствующий экран) открывается с помощью этого кода:
void _signIn() async {
await _auth
.signInWithEmailAndPassword(
email: _userEmail.trim(), password: _userPassword.trim())
.then((task) {
// go to home screen
if (task.getIdToken() != null) {
setState(() {
Navigator.pushReplacement(
context,
new MaterialPageRoute(
builder: (BuildContext context) => new CheckAuth()));
});
} else {
print("Authentication failed");
}
});
}
Проблема. Я могу успешно войти в приложение, но если я нажму кнопку "Назад" после входа в систему, она вернется к экрану входа (пока я ожидаю, что он выйдет из приложения).
Вопрос: Как переехать с одного экрана на другой в Флаттере без обратного пути?
Нужно ли мне как-то удалить историю навигатора? Или вообще не использовать навигатор? Я попробовал метод Navigator.replace, но он, похоже, не работал.