Asynchronous 颤振:等待云函数完成并在客户端检查结果

Asynchronous 颤振:等待云函数完成并在客户端检查结果,asynchronous,flutter,dart,google-cloud-firestore,square,Asynchronous,Flutter,Dart,Google Cloud Firestore,Square,正在尝试使用square支付处理器 客户端从Square SDK请求一个nonce 客户端将nonce写入云firestore 服务器创建客户卡并将结果写入数据库(可以是成功或错误) 我的问题是:如何在客户机中等待3)分钟,并据此进行 未来等待着你去写( 字符串控制字段, 动态通行条件, 持续时间超时,){ 打印(“等待服务器写入”); Completer Completer=Completer(); 流订阅流; 秒表计时器=秒表()…开始() 我的逻辑正确吗?这个代码正确吗?我能简化一下吗

正在尝试使用square支付处理器

  • 客户端从Square SDK请求一个nonce
  • 客户端将nonce写入云firestore
  • 服务器创建客户卡并将结果写入数据库(可以是成功或错误)
  • 我的问题是:如何在客户机中等待3)分钟,并据此进行

    未来等待着你去写( 字符串控制字段, 动态通行条件, 持续时间超时,){ 打印(“等待服务器写入”); Completer Completer=Completer(); 流订阅流; 秒表计时器=秒表()…开始()

  • 我的逻辑正确吗?这个代码正确吗?我能简化一下吗

    谢谢。我是初学者

    stream = ref.snapshots().listen((snap) {
      if (snap.data[controlField] != null) {
        if (snap.data[controlField] == passCondition) {
          stream.cancel();
          completer.complete(true);
        } else {
          completer.complete(false);
        }
      }
    
      if (timer.elapsedMilliseconds > timeout.inMilliseconds) {
        print('operation timeout');
        completer.complete(false);
      }
      print('no controlField ($controlField) in snap...');
      completer.future;
    });
    
    print('waiting data....');
    return completer.future;   }