如何将一些旧的Flutter代码更新到最新版本

t5zmwmid  于 2023-04-07  发布在  Flutter
关注(0)|答案(2)|浏览(199)

我有一个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”。
任何投入将不胜感激。

insrf1ej

insrf1ej1#

在终端

flutter pub upgrade --major-verions

然后尝试使当前代码适应新的更新;有时,您需要更改整个软件包,因为其中一些软件包已打折。

kqlmhetl

kqlmhetl2#

请提供更多代码。
结果被赋给了什么?什么时候调用?
至于forEach错误,你假设dataSnapshot.value将是一个List,但它不是,因此它不工作。

相关问题