如何在使用MultiProvider创建的模型中访问流?

时间:2019-08-27 11:56:42

标签: flutter

我在我的应用程序的根目录使用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;
  }}

在模型中,我需要一种访问流的方法

0 个答案:

没有答案