在导航到特定屏幕后,在 Firebase 不起作用的情况下注销



从主屏幕注销工作正常,即使在导航到其他屏幕然后返回主屏幕注销时,但是,当从主屏幕开始评估时,将您带到"assessment_list"并返回主屏幕,注销不起作用。我将如何解决这个问题?

主屏幕

actions: [
...
items: [
DropdownMenuItem(
child: Container(
child: Row(
children: [
const Icon(Icons.exit_to_app),
const Text('Logout'),
const SizedBox(width: 8),
],
),
),
value: 'logout',
),
],
onChanged: (itemIdentifier) {
if (itemIdentifier == 'logout') {
FirebaseAuth.instance.signOut();
}
...
RaisedButton(
child: Text(
'Start Assessment'
),
onPressed: () {
navigateToAssessmentList(context);
},
),
...
Future navigateToAssessmentList(context) async {
Navigator.push(
context, MaterialPageRoute(builder: (context) => AssessmentList()));
}

assessment_list

child: RaisedButton(
padding: EdgeInsets.all(10),
color: const Color(0xfff4f4f4),
child: Text(
'Back To Home',
),
onPressed: () {
Navigator.of(context).push(MaterialPageRoute(
builder: (context) => BottomNavBarController()));
}),

您在堆栈中再次推送同一页面。请替换以下行

Navigator.of(context).push(MaterialPageRoute(
builder: (context) => BottomNavBarController()));

有了这个

Navigator.pop(context)

最新更新