Как убедиться, что пользователь вошел в систему с помощью Firebase и Flutter - PullRequest
0 голосов
/ 05 августа 2020

Я хочу проверить, вошел ли пользователь в систему, а затем go на главную страницу, если он не вошел в систему, затем go на страницу входа.

Проблема, с которой я столкнулся, заключается в том, что после того, как я зарегистрировался, если я обновлю sh, он напрямую перейдет на домашнюю страницу, даже без входа в систему. Я думаю, это потому, что после регистрации (createUserWithEmailAndPassword) есть текущий пользователь. И я проверяю это как условие if.

Ниже показан мой код. Кто-нибудь может мне помочь, пожалуйста! Я хочу, чтобы мой пользователь переходил go на главную страницу только после входа в систему, а не после регистрации.

doo(context) async {
FirebaseUser user = await FirebaseAuth.instance.currentUser();
if (user == null) {
  Navigator.push(
    context,
    MaterialPageRoute(
      builder: (context) => LoginPage(),
    ),
  );
} else {
  Navigator.push(
    context,
    MaterialPageRoute(
      builder: (context) => MyHomePage(),
    ),
  );
 }
}

Ответы [ 2 ]

1 голос
/ 05 августа 2020

Один из способов сделать это - выйти из системы сразу после регистрации, что-то вроде этого ..

FirebaseUser user;
    
user = await FirebaseAuth.instance.createUserWithEmailAndPassword(
  email: emailController.text,
  password: passwordController.text,
);

await FirebaseAuth.instance.signOut();


//then proceed with the logic for navigating to either LoginPage() or HomePage()
//..
0 голосов
/ 05 августа 2020

Вы можете проверить SharedPreferences. Вы можете установить строку значения в SharedPreferences и когда пользователь входит в систему и в проверке условий

if (user == null && sharedPrefs.getString('isLogin') != '')
...