【问题标题】:Flutter, Dart, FireBase: [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: Invalid argument(s) - onTap GestureDetctureFlutter、Dart、FireBase:[错误:flutter/lib/ui/ui_dart_state.cc(199)] 未处理的异常:无效参数 - onTap GestureDetcture
【发布时间】:2021-08-24 18:10:21
【问题描述】:

我在运行我的应用程序时收到以下错误。

[ERROR:flutter/lib/ui/ui_dart_state.cc(199)] 未处理异常:无效参数

手势捕获的异常 无效参数

代码

onTap: () async {
                                  var userDetail = await FirebaseFirestore
                                      .instance
                                      .collection("Users")
                                      .doc(
                                          FirebaseAuth.instance.currentUser.uid)
                                      .get();
                                  final pID =
                                      userDetail.data()['ID'];

                                  final pName = userDetail.data()['Name'];
                                  var dName = snapshot.data.docs[index]
                                      .data()['Doc Name'];
                                  var dID = snapshot.data.docs[index]
                                      .data()['DocID'];
                                  var dcoumentID=
                                      pID + pName + dName + dID;
                                  Navigator.push(
                                    context,
                                    MaterialPageRoute(builder: (context) {
                                      return Screen1(
                                          doctor:
                                              snapshot.data.docs[index].data(),
                                          doctumentID:
                                              dcoumentID);
                                    }),
                                  );
                                },

此代码适用于应用程序的其余部分,只有这部分会引发错误。

我做错了什么?

【问题讨论】:

  • 该错误没有透露任何信息。您正在获取来自 Firestore 的数据,请确保所有值,例如pID、pName 等不为空。最有可能的是有一些空值。
  • 是的,我只是在检查他们没有给出 null。
  • 你试过调试器吗?不知道的话,把onTap函数里面的代码全部去掉,然后每一行一个接一个的加进去看看,希望是最简单的找错方法。

标签: flutter dart google-cloud-firestore


【解决方案1】:

错误出现在我尝试访问的某个字段中,我没有添加空格。 始终检查您是否正确输入了字段名称和集合名称。 谢谢。

onTap: () async {
                                  var userDetail = await FirebaseFirestore
                                      .instance
                                      .collection("Users")
                                      .doc(
                                          FirebaseAuth.instance.currentUser.uid)
                                      .get();
                                  final pID =userDetail.data()['ID'];
    
                                      final pName = userDetail.data()['Name'];
                                      var dName = snapshot.data.docs[index]
                                          .data()['Doc Name'];
                                      var dID = snapshot.data.docs[index]
                                          .data()['Doc ID']; //changed field name
                                      var dcoumentID=
                                          pID + pName + dName + dID;
                                      Navigator.push(
                                        context,
                                        MaterialPageRoute(builder: (context) {
                                          return Screen1(
                                              doctor:
                                                  snapshot.data.docs[index].data(),
                                              doctumentID:
                                                  dcoumentID);
                                        }),
                                      );
                                    },

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-21
    • 1970-01-01
    • 2022-08-20
    • 1970-01-01
    • 2021-02-28
    • 1970-01-01
    • 2021-09-24
    相关资源
    最近更新 更多