Операция навигатора запрошена с контекстом, который не включает навигатор.
Контекст, используемый для отправки или извлечения маршрутов из навигатора, должен быть контекстом виджета. это потомок виджета "Навигатор".
логика следующая:
если пользователь новый и запускает приложение впервые, экран загрузки, экран-заставка, один раз ежедневное подтверждение, которое является фиксированным подтверждением, которое нельзя изменить («Посреди зимы я обнаружил, что во мне живет непобедимое лето»). Затем начальный экран.
Если пользователь зарегистрирован и вошел в систему, запускается приложение должно отображать экран загрузки, экран-заставку, подтверждение один раз в день, которое случайным образом извлекается из подтверждений Firestore, а затем главный экран.
Код: Выделить всё
enter code here
Код: Выделить всё
// Show flow for logged-in users
void _showAffirmationsAndNavigate() {
print('Starting _showAffirmationsAndNavigate...');
// Ensure the user state is correct
if (currentUser == null) {
print('Error: currentUser is null during navigation.');
} else {
print('User is logged in with UID: ${currentUser!.uid}');
}
// Ensure the right context for navigation
WidgetsBinding.instance.addPostFrameCallback((_) {
Builder(builder: (BuildContext context) {
if (currentUser != null) {
print('Navigating to HomeView...');
Navigator.of(context).pushReplacement(
MaterialPageRoute(
builder: (context) => HomeView(
userId: currentUser!.uid,
affirmationService: affirmationService,
),
),
);
} else {
print('Navigating to InitialScreen for non-logged-in users...');
Navigator.of(context).pushReplacement(
MaterialPageRoute(
builder: (context) => const InitialScreen(),
),
);
}
return Container(); // Dummy return, as Builder requires a widget to return
});
});
'''
'''
Подробнее здесь: https://stackoverflow.com/questions/791 ... r-log-in-s