Firebase 错误:找不到正确的提供程序<;列表<;规划师>&燃气轮机;在这个Planner小部件上面

Firebase 错误:找不到正确的提供程序<;列表<;规划师>&燃气轮机;在这个Planner小部件上面,firebase,flutter,dart,Firebase,Flutter,Dart,我希望有人能帮我,我已经在这个问题上纠缠了好几个小时了 我正试图从Firestore快照构建一个基于我自己模型的StreamProivder。不知何故,每次我为StreamProvider声明类型时,值:-行都会有红色下划线 这是流提供者 return StreamProvider<List<Planner>>.value( value: DatabaseService(uid: user.uid).planner, child: Scaffold(... 以下

我希望有人能帮我,我已经在这个问题上纠缠了好几个小时了

我正试图从Firestore快照构建一个基于我自己模型的StreamProivder。不知何故,每次我为StreamProvider声明类型时,
值:
-行都会有红色下划线

这是流提供者

return StreamProvider<List<Planner>>.value(
  value: DatabaseService(uid: user.uid).planner,
  child: Scaffold(...
以下是AndroidStudio的错误提示:

参数类型“Stream”(其中在中定义了Planner) …\lib\models\plannermodel.dart)无法分配给参数 “类型”流(其中规划器在中定义) …\lib\screens\planner.dart)

我怎样才能解决这个问题


提前谢谢你

您需要在.map()之后的get planner中使用.toList()

您需要在.map()之后的get planner中使用.toList()

错误消息:

无法将参数类型“Stream”(其中Planner在…\lib\models\Planner Model.dart中定义)分配给参数类型“Stream”(其中Planner在…\lib\screens\Planner.dart中定义)

我们可以看到,
Planner
类有两个相互冲突的定义,一个在
models\plannermodel.dart
中,另一个在
screens\Planner.dart


因此,我们可以将
screens\Planner.dart
中的
Planner
类更改为
PlannerScreen
,以解决此问题。

错误消息:

无法将参数类型“Stream”(其中Planner在…\lib\models\Planner Model.dart中定义)分配给参数类型“Stream”(其中Planner在…\lib\screens\Planner.dart中定义)

我们可以看到,
Planner
类有两个相互冲突的定义,一个在
models\plannermodel.dart
中,另一个在
screens\Planner.dart


因此,我们可以将
screens\Planner.dart
中的
Planner
类更改为
PlannerScreen
,以解决此问题。

我的_plannerFromSnapshot函数末尾有一个toList()函数。在getter中使用toList()函数会带来更多错误我在my\u plannerFromSnapshot函数的末尾有一个toList()函数。在getter中使用toList()函数会带来更多的errorsHappy帮助!请不要忘记选择答案,因为我很乐意帮助您!请不要忘记选择正确的答案
  Stream<List<Planner>> get planner {
    return userCollection.document(uid).collection('Planner').snapshots().map(_plannerFromSnapshot);
  }
  List<Planner> _plannerFromSnapshot(QuerySnapshot snapshot) {
    return snapshot.documents.map((doc) {
      return Planner(
        tag: doc.data['Datum'] ?? '',
        tageszeit: doc.data['Tageszeit'] ?? '',
        gericht: doc.data['Gericht'] ?? '',
        plannerID: doc.documentID ?? '',
      );
    }).toList();
  }
}
class Planner {

  final String tag;
  final String tageszeit;
  final String gericht;
  final String plannerID;

  Planner({this.tageszeit, this.gericht, this.tag, this.plannerID});

}