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