首先,我创建了一些文本值

  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';那么比较应该相等。

10-05 21:04