Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase 在null(颤振)上调用了Future函数_Firebase_Flutter_Dart - Fatal编程技术网

Firebase 在null(颤振)上调用了Future函数

Firebase 在null(颤振)上调用了Future函数,firebase,flutter,dart,Firebase,Flutter,Dart,因此,我正在编写一个测验应用程序,我需要从firestore中获得一定数量的问题。因此,我创建了两个文件数据提供程序文件和存储库文件,它们的外观如下: 数据提供程序 class TestProvider { FirebaseFirestore _firestore = FirebaseFirestore.instance; Future<Map> getQuestionFromFirebase(String documentId) async { Map mappe

因此,我正在编写一个测验应用程序,我需要从firestore中获得一定数量的问题。因此,我创建了两个文件数据提供程序文件和存储库文件,它们的外观如下: 数据提供程序

class TestProvider {
  FirebaseFirestore _firestore = FirebaseFirestore.instance;

  Future<Map> getQuestionFromFirebase(String documentId) async {
    Map mappedQuestion;
    await _firestore
        .collection('questions')
        .doc(documentId)
        .get()
        .then((DocumentSnapshot snapshot) => mappedQuestion = snapshot.data());
    return mappedQuestion;
  }
}

有趣的是,当我从提供者那里调用函数时,并没有得到错误。当我在repo类中使用它时,问题就开始了。知道怎么修吗?我不想在任何时候在widget中使用FutureBuilder。我想将快照转换为我的问题模型。

在您的
测试库中
代码不清楚您在哪里实例化
TestProvider\u TestProvider成员

错误消息很清楚方法“getQuestionFromFirebase”在null上被调用。因此没有
TestProvider
类的实例,并且
\u TestProvider
是一个空指针


Grant
TestProvider\u TestProvider=TestProvider(),您的代码将不会出现任何问题。

可能您缺少启动
测试提供程序的功能<代码>TestProvider_TestProvider=TestProvider()非常感谢,工作正常:)
class TestRepository {
  final int amountOfQuestions;
  TestRepository({
    @required this.amountOfQuestions,
  });

  TestProvider _testProvider;

  Future listOfQuestions() async {
    List<int> range = numberInRange(amountOfQuestions);
    List<Question> listOfQuestions;
    for (int i = 1; i <= amountOfQuestions; i++) {
      listOfQuestions.add(Question.fromMap(
          await _testProvider.getQuestionFromFirebase(range[i].toString())));
    }
    return listOfQuestions;
  }
}
E/flutter ( 5186): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: NoSuchMethodError: The method 'getQuestionFromFirebase' was called on null.
E/flutter ( 5186): Receiver: null
E/flutter ( 5186): Tried calling: getQuestionFromFirebase("3")