Флаттер, как аутентифицировать две роли пользователей и отправлять их на другие экраны в флаттере и пожарной базе? - PullRequest
0 голосов
/ 23 января 2020

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

 onPressed: () async {
                          if (_formkey.currentState.validate()) {
                            setState(() => loading = true);
                            print("valid");
                            dynamic result =
                                await _auth.signInWithEmailAndPassword(
                                    email.trim(), password);
                            dynamic sth =
                                DatabaseService(uid: result).getrole();

                            if (result == null) {
                              setState(
                                () {
                                  error =
                                      "Couldn't sign in with this credential";
                                  loading = false;
                                },
                              );
                            } else {
                              if (sth == "User") {
                                Navigator.push(
                                    context,
                                    MaterialPageRoute(
                                        builder: (context) => MyApp()));
                              } else if (sth == "Service Provider") {
                                Navigator.push(
                                    context,
                                    MaterialPageRoute(
                                        builder: (context) =>
                                            ServiceHome()));
                              }
                              ;
                            }
                          }
                        }),

и эта функция перехватывает перед оператором if из приведенного выше кода

final user = Provider.of<User>(context);
if (user == null)
{
return Authenticate();
}
else
{
 return Home();
}

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