Firebase Future.wait并不是真正在等待将来的函数-flatter

Firebase Future.wait并不是真正在等待将来的函数-flatter,firebase,flutter,google-cloud-firestore,future,flutter-web,Firebase,Flutter,Google Cloud Firestore,Future,Flutter Web,我试图并行运行多个futures,但是Future.wait并不是真正在等待Future函数。我犯了这个错误 错误:NoSuchMethodError:' 找不到方法 下面是简单的代码文档IDTONAME功能运行延迟 Stream\u itemDataProvider=DatabaseService().getAllItems; List _extractedList=wait _itemDataProvider.first; //是,上面的流正在正确地获取数据,因为prolem将在将来。请稍

我试图并行运行多个futures,但是
Future.wait
并不是真正在等待Future函数。我犯了这个错误

错误:NoSuchMethodError:'
找不到方法
下面是简单的代码<代码>文档IDTONAME功能运行延迟

Stream\u itemDataProvider=DatabaseService().getAllItems;
List _extractedList=wait _itemDataProvider.first;
//是,上面的流正在正确地获取数据,因为prolem将在将来。请稍候
打印(“-->内部for循环”+_extractedList[i].price.toString());
对于(int i=0;i<\u extractedList.length;i++){
字符串_itemctname,_itemSubCtgName;
未来,等等([
DBHelperFtns().documentIDToName(
FirebaseFirestore.instance.collection('itemCtg'),
“itemCtgID”,
“姓名”,
_extractedList[i].itemCtgID,
),
DBHelperFtns().documentIDToName(
FirebaseFirestore.instance.collection('itemSubCtg'),
“itemSubCtgID”,
“姓名”,
_extractedList[i].ItemSubCgId,
),
]).然后((值){
_ItemCtname=值[0];
_itemSubCtgName=值[1];
}).catchError((e)=>打印(“错误:$e”);
打印(“\u itemctname:+\u itemctname.toString());
打印(“\u itemSubCtgName:”+\u itemSubCtgName.toString());
}
/-----------使用ID提取名称
未来文档IDTONAME(
打印(“--->内部文档IDTONAME ftn”);
CollectionReference passedCollection,
字符串dbKeyNamOfID,
字符串dbKeyNamOfName,
字符串passedID,
)异步的{
字符串_extractedName;
等待通过收集
.where(dbKeyNamOfID,isEqualTo:passedID)
.get()
.然后((数据){
如果(data.docs.length>0){
_extractedName=data.docs[0].data()[dbKeyNamOfName].toString();
}
});
返回_extractedName;
}
输出
documentIDToName
正在返回预期的数据,但运行有点晚。为什么未来。等待不是等待


--->环路150 Rs的内部
dart_sdk.js:26496高于未来等待--
dart_sdk.js:26496\u itemctname:null
dart_sdk.js:26496\u itemSubCtgName:null
dart_sdk.js:5968未捕获(承诺中)错误:NoSuchMethodError:“”
找不到方法
收件人:空
论点:[]
at Object.throw_uu[as throw](dart_sdk.js:4334)
at Object.throwNullValueError(dart_sdk.js:4300)
at Object._notNull[as notNull](dart_sdk.js:4650)
在itemViewmodel.itemViewmodel.new.GetAllIteemsInfo(itemViewmodel.dart.js:521)
在GetAllyItemsInfo.next()上
在dart_sdk.js:37603
at_RootZone.runUnary(dart_sdk.js:37457)
at_FutureListener.ThenWait.handleValue(dart_sdk.js:32441)
在handleValueCallback(dart_sdk.js:32988)
at函数。传播到侦听器(dart_sdk.js:33026)
位于_Future.new.[u complete](dart_sdk.js:32860)
at Object.\u cancelAndValue(dart\u sdk.js:37867)
在dart_sdk.js:18578
at_RootZone.runUnaryGuarded(dart_sdk.js:37383)
在(u ForwardingStreamSubscription.new.[u sendData](dart_sdk.js:30992)
在_ForwardingStreamSubscription.new.[u add](dart_sdk.js:30938)
位于_ForwardingStreamSubscription.new.[u add](dart_sdk.js:35106)
位于_MapStream.new.[u handleData](dart_sdk.js:35237)
位于(u ForwardingStreamSubscription.new.[u handleData](dart_sdk.js:35134)
at_RootZone.runUnaryGuarded(dart_sdk.js:37383)
位于_ControllerSubscription.new.[u sendData](dart_sdk.js:30992)
在_ControllerSubscription.new.[u add](dart_sdk.js:30938)
新的。[[u sendData](dart_sdk.js:33894)
在_SyncStreamController.new.[u add](dart_sdk.js:33702)
在dart_sdk.js:18106
at_RootZone.runUnary(dart_sdk.js:37457)
at_FutureListener.then.handleValue(dart_sdk.js:32441)
在handleValueCallback(dart_sdk.js:32988)
at函数。传播到侦听器(dart_sdk.js:33026)
位于_Future.new.[u completeWithValue](dart_sdk.js:32869)
在async.\u AsyncCallbackEntry.new.callback(dart\u sdk.js:32891)
at Object._microtaskLoop(dart_sdk.js:37718)
at_startMicrotaskLoop(dart_sdk.js:37724)
在dart_sdk.js:33243
DartError@dart_sdk.js:5968
掷镖sdk.js:4334
throwNullValueError@dart_sdk.js:4300
_notNull@dart_sdk.js:4650
getAllyItemsInfo@itemViewmodel.dart.js:521
(匿名)@dart_sdk.js:37603
runUnary@dart_sdk.js:37457
handleValue@dart_sdk.js:32441
handleValueCallback@dart_sdk.js:32988
_传播到监听器@dart_sdk.js:33026
[\u complete]@dart\u sdk.js:32860
_cancelAndValue@dart_sdk.js:37867
(匿名)@dart_sdk.js:18578
runUnaryGuarded@dart_sdk.js:37383
[\u sendData]@dart\u sdk.js:30992
[\u add]@dart\u sdk.js:30938
[\u add]@dart\u sdk.js:35106
[\u handleData]@dart\u sdk.js:35237
[\u handleData]@dart\u sdk.js:35134
runUnaryGuarded@dart_sdk.js:37383
[\u sendData]@dart\u sdk.js:30992
[\u add]@dart\u sdk.js:30938
[\u sendData]@dart\u sdk.js:33894
[\u add]@dart\u sdk.js:33702
(匿名)@dart_sdk.js:18106
runUnary@dart_sdk.js:37457
handleValue@dart_sdk.js:32441
handleValueCallback@dart_sdk.js:32988
_传播到监听器@dart_sdk.js:33026
[\u completeWithValue]@dart\u sdk.js:32869
(匿名)@dart_sdk.js:32891
_microtaskLoop@dart_sdk.js:37718
_startMicrotaskLoop@dart_sdk.js:37724
(匿名)@dart_sdk.js:33243
Promise.then(异步)
_scheduleImmediateWithPromise@dart_sdk.js:33241
_scheduleImmediate@dart_sdk.js:33248
_ScheduleAyncCallback@dart_sdk.js:37740
_rootScheduleMicrotask@dart_sdk.js:37975
scheduleMicrotask@dart_sdk.js:37483
[\u asyncCompleteWithValue]@dart\u sdk.js:32890
[\u asyncComplete]@dart\u sdk.js:32886
完成@dart_sdk.js:32335
(匿名)@dart_sdk.js:60110
Promise.then(异步)
承诺未来@dart_sdk.js:60112
handleThenable@storage.dart.js:3260
runBody@dart_sdk.js:37623
_async@dart_sdk.js:37654
handleThenable@storage.dart.js:3257
获取@storage.dart.js:2588
获取@write\u batch\u web.dart.js:293
runBody@dart_sdk.js:37623
_异步@dart_sdk.js