我有一个Flutter应用程序,大约四年前启动并被放弃。该项目已经重新出现,我一直在修复由于在那段时间对Flutter进行更新而产生的不推荐项目。我已经准备好开始测试,除了一个区域之外,那就是从Firebase Realtime Database阅读到List。以下是有错误的代码:
return await dbReference
.orderByChild(AppDatabase._speciesCommonName)
.startAt(prefix)
.endAt('$prefix\uf8ff')
.once()
.then((DataSnapshot dataSnapshot) {
//
// Make sure we have data
//
if (dataSnapshot.value != null) {
dataSnapshot.value.forEach((key, value) {
String dbKey = key;
String commonName = value[AppDatabase._speciesCommonName];
Species obj = Species(dbKey: dbKey, commonName: commonName);
list.add(obj);
});
我得到的错误是:
无法将参数类型“List Function(DataSnapshot)”分配给参数类型“FutureOrFunction(DatabaseEvent)”。
我已经搜索和研究了这个代码和错误,但是,已经远离Flutter的那些年我没能弄清楚的决议。
上面的代码中还报告了第二个错误,但是,我希望如果初始错误被修复,那么这个错误也会被修复:
未为类型“Object”定义方法“forEach”。
任何投入将不胜感激。
2条答案
按热度按时间insrf1ej1#
在终端
然后尝试使当前代码适应新的更新;有时,您需要更改整个软件包,因为其中一些软件包已打折。
kqlmhetl2#
请提供更多代码。
结果被赋给了什么?什么时候调用?
至于
forEach
错误,你假设dataSnapshot.value
将是一个List
,但它不是,因此它不工作。