首页 > 解决方案 > “字符串”类型不是“时间戳”类型的子类型

问题描述

我对颤动比较陌生。我一直在处理以前开发人员编写的颤振代码库。因此,每当我导航到应用程序中的历史页面时,它都会抛出异常,说明类型“字符串”不是“时间戳”类型的子类型。我不知道代码有什么问题。任何帮助将不胜感激。我已经被困了几天了。createddate 的类型是字符串。在此处输入图像描述

            docs.documents.forEach((i) {
              Timestamp date = i.data['createddate'];
              DateTime dates = date.toDate();
              DateFormat inputFormat = DateFormat("yyyy-MM-dd HH:mm:ss");
              DateTime parsedDate = inputFormat.parse(dates.toString());
              print(approvestatus + 'dada');
              if ((filterFrom
                          .subtract(Duration(hours: 24))
                          .isBefore(parsedDate) &&
                      filterTo
                          .add(Duration(hours: 24))
                          .isAfter(parsedDate)) &&
                  (i.data['shopkeeperid'].toString() == uid) &&
                  (i.data['productid']
                          .toString()
                          .toLowerCase()
                          .contains(searchvalue.toString()) ||
                      i.data['productname']
                          .toString()
                          .toLowerCase()
                          .contains(searchvalue.toString()) ||
                      i.data['productbrand']
                          .toString()
                          .toLowerCase()
                          .contains(searchvalue.toString()) ||
                      i.data['availablequantity']
                          .toString()
                          .toLowerCase()
                          .contains(searchvalue.toString()) ||
                      searchvalue == "")) {
                childrenWidgets.add(productView(i, context));
              }
            });

标签: androidiosflutterdartweb

解决方案


您的代码中有一个 timeStamp 变量,您正在尝试将一个字符串传递给它。我无法清楚地理解这段代码。但是您必须在每一行上放置调试点。例如第一行

      Timestamp date = i.data['createddate'];

如果它data['createddate'];是一个字符串,它可以使这个错误放置调试点,你可以看到每个值,你也将能够理解你的代码从哪个点不会继续前进


推荐阅读