我在我的应用程序的根目录使用MultiProvider,该模型首先进行初始化,以便存在StreamProvider使用的DatabaseReference。 我希望能够将“上下文”传递到MainModel中,以便在MainModel中可以使用Provider.of(context)
访问流。我尝试嵌套提供程序,但这没有帮助
// This is working, but how can I pass 'context' into MainModel?
// Within MainModel I want to be able to access the stream using Provider.of<MainModel>(context)...
main() async {
MainModel model;
await model.initialiseDatabase();
runApp(
MultiProvider(providers: [
ChangeNotifierProvider<MainModel>(builder: (context) => model),
StreamProvider<Event>.value(stream: model.dbRef.onValue)
], child: MyApp()),
);
}
class MainModel with ChangeNotifier {
FirebaseDatabase database;
DatabaseReference dbRef;
Future<Null> initialiseDatabase() async {
database = await FirebaseDatabase();
dbRef = await database.reference().child('products');
return null;
}}
在模型中,我需要一种访问流的方法