Я разрабатываю приложение Flutter с использованием Firebase Auth, и я сталкиваюсь с постоянной проблемой, в которой пользователи выходили из строя каждый раз, когда они полностью закрывают приложение (убить из недавних приложений) и открывать его. Аутентификация должна автоматически сохраняться на мобильных платформах, но она не работает. Зарегистрировано и
перенаправлено на вход в систему < /li>
< /ul> main.dart: написал />>>
class AuthService {
final FirebaseAuth _auth = FirebaseAuth.instance;
User? get currentUser => _auth.currentUser;
Stream get authStateChanges => _auth.authStateChanges();
}
Future signInWithEmailAndPassword(String email, String password) async {
UserCredential result = await _auth.signInWithEmailAndPassword(
email: email,
password: password,
);
if (result.user != null) {
return userModel; // Return user data
}
return null;
}
Future signOut() async {
await DeviceSessionService.endSession();
await _googleSignIn.signOut();
await _auth.signOut();
}
< /code>
Я попытался использовать Streambuilder с AuthstateChanges (), но не удалось
Я пытался использовать AuthstateChanges (). Сначала на экране Splash, но не удалось
Оба метода терпит неудачу - состояние авторизации возвращает NULL при запуске холодного приложения, даже если пользователь был ранее аутентифицирован, журналы говорят: < /p>
Connection state: ConnectionState.active
Has data: false
User: NULL (NULL)
показывает, что Firebase Auth активно возвращает NULL, даже если пользователь был аутентифицирован перед убийством приложения.
Я разрабатываю приложение Flutter с использованием Firebase Auth, и я сталкиваюсь с постоянной проблемой, в которой пользователи выходили из строя каждый раз, когда они полностью закрывают приложение (убить из недавних приложений) и открывать его. Аутентификация должна автоматически сохраняться на мобильных платформах, но она не работает. Зарегистрировано и перенаправлено на вход в систему < /li> < /ul> [b] main.dart:[/b] написал />>>[code]void main() async { WidgetsFlutterBinding.ensureInitialized();
void _navigateBasedOnAuthState(User? user) async { if (user != null) { debugPrint('✅ User IS authenticated redirect to home'); DeviceSessionService.updateActivity();
if (mounted) { Navigator.of(context).pushReplacement( MaterialPageRoute(builder: (_) => const HomeScreen()), ); } } else { debugPrint('NO authenticated user redirect to Login');
User? get currentUser => _auth.currentUser; Stream get authStateChanges => _auth.authStateChanges(); } Future signInWithEmailAndPassword(String email, String password) async { UserCredential result = await _auth.signInWithEmailAndPassword( email: email, password: password, );
if (result.user != null) { return userModel; // Return user data } return null; } Future signOut() async { await DeviceSessionService.endSession(); await _googleSignIn.signOut(); await _auth.signOut(); } < /code> Я попытался использовать Streambuilder с AuthstateChanges (), но не удалось Я пытался использовать AuthstateChanges (). Сначала на экране Splash, но не удалось Оба метода терпит неудачу - состояние авторизации возвращает NULL при запуске холодного приложения, даже если пользователь был ранее аутентифицирован, журналы говорят: < /p>
Connection state: ConnectionState.active Has data: false User: NULL (NULL) [/code] показывает, что Firebase Auth активно возвращает NULL, даже если пользователь был аутентифицирован перед убийством приложения.