Flutter 使用DocumentSnapshot和Firestore对null调用了该方法

Flutter 使用DocumentSnapshot和Firestore对null调用了该方法,flutter,google-cloud-firestore,flutter-layout,flutter-dependencies,flutter-test,Flutter,Google Cloud Firestore,Flutter Layout,Flutter Dependencies,Flutter Test,基本上,我需要将firestore数据库中集合的字段保存在列表中 这是负责连接到数据库的小部件: Future<DocumentSnapshot> MissionRetriever1() async{ return await FirebaseFirestore.instance .collection("quest") .doc("1") .get(); } 它始终处于“加载…

基本上,我需要将firestore数据库中集合的字段保存在列表中

这是负责连接到数据库的小部件:

Future<DocumentSnapshot> MissionRetriever1() async{
    return await FirebaseFirestore.instance
        .collection("quest")
        .doc("1")
        .get();
    }
它始终处于“加载…”状态,并返回以下错误:

E/flutter ( 3639): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: NoSuchMethodError: The method 'MissionRetriever1' was called on null.
E/flutter ( 3639): Receiver: null
E/flutter ( 3639): Tried calling: MissionRetriever1()
这是Firestore系列:

这是init方法:

@override
  void initState() {
    super.initState();
    asyncMethod();
  }

  void asyncMethod() async {
    **await getMission1();**
    await widget.auth.retrieveScore();
    **await widget.mservice.MissionRetriever1();**
    await widget.mservice.NumberGenerator();
  }
这是列表初始化:
**List missiondata=[]**

注意:查看Firestore日志,没有拒绝连接

更改方法“MissionRetriever1()”,查看是否能够恢复数据

return FirebaseFirestore firestore = FirebaseFirestore.instance
.collection('quest')
.doc("1")
.get()
.then((DocumentSnapshot documentSnapshot) {
  if (documentSnapshot.exists) {
    print('Document data: ${documentSnapshot.data()}');
  } else {
    print('Document does not exist on the database');
  }
});

您共享的错误仅表示您的
mservice
null
。这应该是你需要检查的第一件事。我试过了,但是没有打印出来debugging@MatteoGrondona如果你只放了一个打印语句,这个是打印的吗?我认为这不是firestore的问题,可能是代码流的问题。
@override
  void initState() {
    super.initState();
    asyncMethod();
  }

  void asyncMethod() async {
    **await getMission1();**
    await widget.auth.retrieveScore();
    **await widget.mservice.MissionRetriever1();**
    await widget.mservice.NumberGenerator();
  }
return FirebaseFirestore firestore = FirebaseFirestore.instance
.collection('quest')
.doc("1")
.get()
.then((DocumentSnapshot documentSnapshot) {
  if (documentSnapshot.exists) {
    print('Document data: ${documentSnapshot.data()}');
  } else {
    print('Document does not exist on the database');
  }
});