当前位置: 首页 > 知识库问答 >
问题:

类型“String”不是类型“Timestamp”的子类型

钱嘉致
2023-03-14

            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));
              }
            });

共有1个答案

张翰音
2023-03-14

您的代码中有一个时间戳变量,您正试图向它传递一个字符串。我不能清楚地理解这个代码。但是你必须在每一行都放上调试点。例如第一行

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

如果data['createddate'];是一个字符串,则会使此错误放置调试点,您可以看到每个值,还可以了解代码从哪个点开始不会向前移动

 类似资料: