我在 FutureBuilder 中调用 future<bool> 方法时遇到问题

时间:2021-03-12 06:58:59

标签: flutter

它在其他设备上运行良好,但是当我切换到特定设备时,我创建的 future 方法不会在 futurebuilder 上执行

@override
  Widget build(BuildContext context) {
    if(_simCard.length>0){
      return FutureBuilder<bool>(
          future: checkID(_simCard),
          builder: (context,snapshot){

            if(snapshot.hasData){
              print(snapshot.data);
              if(snapshot.data){
                //print(currentSimCard.number+"asdasdas");
                flutterTts.stop();
                // Navigator.push(
                //   context,
                //   MaterialPageRoute(builder: (context) => HomePage(currentSimCard)),
                // );
                return HomePage(currentSimCard);
              }
              else{
                _container = intro();
                return introBuild();
              }
            }
            return  Center(child: CircularProgressIndicator(),);
          });
    }
    else return Center(child: CircularProgressIndicator(),);

  }

Future<bool> checkID(List<SimCard> simcard) async {
    for(int i = 0; i < simcard.length;i++){
      final snapShot = await FirebaseFirestore.instance.collection('Users').doc(simcard[i].number).get();
      if (snapShot.exists){
        currentSimCard = simcard[i];
        return true;
      }
    }

    return false;
  }

我知道这个方法不会被未来的构建器调用,因为当我打印数据时它会打印 null

0 个答案:

没有答案