我的项目包含一个小队测验选项,管理员可以向他想与之竞争的用户发送邀请。 一旦每个人都加入并且管理员开始测验,两者都会被推送到页面上,并且管理员有更多的权限,其他一切从显示问题到选择答案都是一样的。 测验只能在管理员在测验结束时单击结束时结束,并且我在单击该按钮时 firesstore 的侦听器值会更改,并且当值更改时,用户和管理员应该被推送到结果页面。 一切对管理员来说都完美无缺,但对于其他用户,我在控制台中遇到错误。 每当用户在测验之间单击后退按钮时,也会抛出相同的错误,并且没有为用户调用我的 WillpopScope 函数,但对于管理员来说一切都很好。
测验代码的结构:
class Quiz extends StatefulWidget {
@override
_QuizState createState() => _QuizState();
}
class _QuizState extends State<Quiz> {
@override
Widget build(BuildContext context) {
return StreamBuilder(
stream: SomeStream(),
builder: (context , snapshot){
if(listener == true){
Navigator.of(context).pushReplacement(MaterialPageRoute(
builder: (context) =>
ResultScreen(),
));
}
return WillPopScope(
onWillPop: (){
SomeAction(),
},
child: Column(
children: [
Body,
isAdmin ?
SubmitButton(
onTap () :{
listner == true;
}
):
WaitingForAdminButton(),
],
)
)
},
);
}
}
我真的很困惑,为什么一切对管理员来说都是完美的,但对用户却不是,有人可以帮我解决这个问题吗??
提前致谢。