首先,我创建了一些文本值
Text gamecon1 = Text('1v1 Box Fight');
Text gamecon1duo = Text('1v1 Duos');
Text gamecon2 = Text('2v2 Box Fight');
Text gamecon2sq = Text('2v2 Squads');
Text gamecon3 = Text('3v3 Box Fight');
Text gamecon4 = Text('4v4 Box Fight');
然后我从Firestore查询了一个文档字段,并写了一条条件语句 Text((() {
if (tourneyDetails['tourneyprizes'] ==
gamecon1) {
return multiplier = 8;
} else if (tourneyDetails[
'tourneyprizes'] ==
gamecon1duo) {
return multiplier = 5;
String calculator = (int.parse(
tourneyDetails[
'tourneycost']) *
multiplier)
.toString();
String calculatordivide =
(double.parse(calculator) / 100.0)
.toString();
String calculatorpercentage =
(double.parse(calculatordivide) *
20)
.toString();
String calculatorfinal =
(double.parse(calculator) -
double.parse(
calculatorpercentage))
.toString();
return calculatorfinal;
我要完成的工作是,如果document字段等于文本值之一,则它应该运行计算并返回该值。但这不起作用。
经过一些故障排除后,我意识到即使文本值与查询的文档字段相同,Flutter仍无法识别它。
如果需要更多上下文,请随时发表评论。谢谢
最佳答案
不知道不知道tourneyDetails的类型定义是什么,我不确定,但是我怀疑您正在尝试将字符串(在tourneyDetails中)与“文本”小部件进行比较。如果是这样,他们将永远不会平等。您应该将字符串定义为常量,例如。 const gamecon1 ='1v1 Box Fight';那么比较应该相等。