首页 > 解决方案 > 在发送请求之前显示所有驱动程序

问题描述

我想首先通过选择驱动程序类型来检查附近的所有驱动程序。然后获取与客户的距离,然后在类型中找到最近的驱动程序并发送请求,但我的代码仅获取列表中的第一个驱动程序并随后发送请求。

void searchNearestDriver()
  {
    if(availableDrivers.length == 0)
    {
      cancelRideRequest();
      resetApp();
      noDriverFound();
      return;
    }

    var driver = availableDrivers[0];

    driversRef.child(driver.key).child("type").once().then((DataSnapshot snap) async
    {
      if(await snap.value != null)
      {
        String carType = snap.value.toString();
        print("Driver from db " + carType);
        if(carType == carRideType)
        {
          notifyDriver(driver);
          availableDrivers.removeAt(0);
        }
        else
        {
          print(carRideType + " Cannot be found");
          displayToastMessage(carRideType + " not available. Try again.", context);
        }
      }
      else
      {
        displayToastMessage("No driver found. Try again.", context);
      }
    });

  }

标签: flutterfirebase-realtime-database

解决方案


推荐阅读