Ошибка перехода на главный экран или начальный экран в зависимости от текущего статуса входа пользователя в системуAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка перехода на главный экран или начальный экран в зависимости от текущего статуса входа пользователя в систему

Сообщение Anonymous »

Ошибка:
Операция навигатора запрошена с контекстом, который не включает навигатор.
Контекст, используемый для отправки или извлечения маршрутов из навигатора, должен быть контекстом виджета. это потомок виджета "Навигатор".
логика следующая:
если пользователь новый и запускает приложение впервые, экран загрузки, экран-заставка, один раз ежедневное подтверждение, которое является фиксированным подтверждением, которое нельзя изменить («Посреди зимы я обнаружил, что во мне живет непобедимое лето»). Затем начальный экран.
Если пользователь зарегистрирован и вошел в систему, запускается приложение должно отображать экран загрузки, экран-заставку, подтверждение один раз в день, которое случайным образом извлекается из подтверждений 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»