首页 > 解决方案 > Provider 没有作用域,声明 Flutter 后访问不正确

问题描述

我正在我的移动应用程序上完成身份验证流程,现在是注册时间,所以用户应该插入其数据(姓名,年龄......)但我收到错误Provider isn't scoped,所以我不能使用FirestoreDatabase函数。这是Provider<Something>所有应用程序流程中的第一个声明我认为我没有以正确的方式阅读它,也许context是问题所在?

首先显示代码,这Database是定义类的方式:

class FirestoreDatabase implements Database{//...some functions

现在代码:

Widget build(BuildContext context) {
    return Provider<Database>( //Database is an interface to use FirebaseFirestore class methods and other
      create: (context) => FirestoreDatabase(uid: widget.userUid),
      child: Scaffold(...

里面Scaffold有一个表格来获取用户输入,所以没什么特别的。最后,在保存时:

Future<void> _submit() async {
    if (_validateAndSaveForm()) {
      Database database = Provider.of<Database>(context, listen: false);
      database.(some functions)

我认为问题出context在我声明类型变量的最后几行database

标签: fluttergoogle-cloud-platformfirebase-authenticationflutter-provider

解决方案


推荐阅读