【问题标题】:Error Expected a value of type 'Map<String, dynamic>', but got one of type '() => Map<String, dynamic>?'错误需要一个类型为“Map<String, dynamic>”的值,但得到了一个类型为“() => Map<String, dynamic>?”的值
【发布时间】:2022-01-05 18:07:28
【问题描述】:

今天我收到了这个错误: Expected a value of type 'Map&lt;String, dynamic&gt;', but got one of type '() =&gt; Map&lt;String, dynamic&gt;?' The relevant error-causing widget was: StreamBuilder&lt;DocumentSnapshot&lt;Object?&gt;&gt; StreamBuilder:file:[Filepath] 这是这个小部件:

              return StreamBuilder<DocumentSnapshot>(

                stream: database.getTodos(),

                builder: (BuildContext context, AsyncSnapshot<DocumentSnapshot> snapshot) {
                  if (!snapshot.hasData) {
                    return Center(child: CircularProgressIndicator());
                  }
                  else {
                    // resolve stream... Stream<DocumentSnapshot> -> DocumentSnapshot -> Map<String, bool>
                    Map<String, dynamic> items = snapshot.data?.data as Map<String, dynamic>;

                    return ListView.builder(
                        itemCount: items.length,
                        itemBuilder: (context, i) {
                          String key = items.keys.elementAt(i);
                          return ToDoItem(
                            key,
                            items[key],
                                () => deleteItem(key),
                                () => toggleDone(key, items[key]),
                          );
                        });
                  }
                },
              );

该错误是由 Firestore 数据库引起的,但我不知道如何修复它。 如果你需要更多的东西来解决它,请评论,我会给你它的代码。 我试图通过添加一些?around 或更改类型Map 来解决它哦,我也更改了

  Stream getTodos() {
    return userTodos.document(userID).snapshots();
  }

在数据库类中

  Stream<DocumentSnapshot> getTodos() {
    return userTodos.doc(userID).snapshots();
  }

但它并没有修复这个错误,而是另一个错误。 感谢您的帮助

【问题讨论】:

    标签: firebase flutter dart


    【解决方案1】:

    你在这里写了snapshot.data?.data,但是第二个数据是一个返回地图的函数,而不是地图本身,所以你需要调用它:snapshot.data?.data()

    【讨论】:

      猜你喜欢
      • 2021-11-15
      • 2021-11-02
      • 2021-06-12
      • 2021-07-29
      • 2021-05-02
      • 2022-01-21
      • 1970-01-01
      • 2021-11-12
      • 1970-01-01
      相关资源
      最近更新 更多