Моя цель для этого приложения - иметь постоянный вход в систему, так что пользователь моего приложения Flutter должен входить в систему только один раз (если он не вышел), и всякий раз, когда мое приложение Flutter перезапускается, ему не нужно повторно входить в систему. Я видел много примеров использования Firebase Authentication и метода .currentUser (), но мне все равно приходится входить в систему каждый раз, когда я перезапускаю приложение. Я проверил это на симуляторе (ios) и на моем физическом iphone во время работы в режиме отладки на xCode (USB-соединение). Возможно ли, что я не могу проверить эту функциональность таким образом? Потому что я вижу всплывающее сообщение на терминалах android studio и xCode, в которых упоминается потеря подключения к устройству или прекращение работы из-за перезапуска. Если это так, как я могу проверить, что постоянный вход в систему работает?
Если это не так, что я делаю не так? Я включил код ниже. Конечно, это происходит в виджете с состоянием.
final _auth = FirebaseAuth.instance;
checkIfCurrentUserExists() async {
try {
await _auth.currentUser().then((user) {
print('this is the user $user');
if (user != null && user.email != null) {
userIsLoggedIn = true;
// this works fine!
}
});
} catch (e) {
print('current user was not found $e');
// this works fine!
}
}
// called inside initState()
setClientOnLoad() async {
await Spryte.checkIfCurrentUserExists();
var doesCurrentUserExist = userIsLoggedIn;
var currentUser = await returnCurrentUser();
if (doesCurrentUserExist == false) {
//if user is not authenticated, set anonymous user
// this works fine!
}
else {
//print('current user does exist');
await foo(currentUser.uid);
// 'foo' is meant to retrieve some data about the client on loading of the app
// so that the user doesn't have to log in every time the app restarts
// but for some reason it's not working for me
}
}