当前位置: 首页 > 知识库问答 >
问题:

错误:getter'docs'未为类'Object'定义。-'Object'来自'dart: core'

糜凯泽
2023-03-14

我在从Firebase Cloud FiRecovery获取消息时遇到问题。显示的错误是:'错误:getter'docs'未为类'Object'定义-'Object'来自'dart: core'。'

下面是我的代码:

class ChatScreen extends StatelessWidget {
    @override
    Widget build(BuildContext context) {
        return Scaffold(
          body: StreamBuilder<Object>(
              stream: FirebaseFirestore.instance
                  .collection('chats/EKLJIb8ZfRoDTqxkkJaB/messages')
                  .snapshots(),
              builder: (context, chatSnapshot) {
                return ListView.builder(
                  itemCount: chatSnapshot.data.**docs**.length,
                  itemBuilder: (ctx, index) => Container(
                    padding: EdgeInsets.all(8),
                    child: Text('this work'),
                  ),
                );
              }),
          floatingActionButton: FloatingActionButton(
            child: Icon(Icons.add),
            onPressed: null,
          ),
      );
   }
}

共有2个答案

柯昱
2023-03-14

我通过在StreamBuilder之后添加动态数据类型解决了这个问题,在我的情况下,“Peter Haddad”的答案对我不适用,我有完全相同的错误。

我是这样解决的:

StreamBuilder<dynamic>(....Your Code here....)
凌俊材
2023-03-14

更改此项:

body: StreamBuilder<Object>(

进入这个:

body: StreamBuilder<QuerySnapshot>(

文档是类QuerySnapshot下的属性,而不是类Object下的属性。

您必须指定您的stream返回的类型。因此,如果您有Stream类型的stream

在新的cloud\u firestore包中,snapshots()方法返回流

body: StreamBuilder<QuerySnapshot<Map<String, dynamic>>>(

添加动态可以解决这个问题,但最好添加返回的类型,因为这样编辑器或IDE将为您提供代码完成。

 类似资料:
  • 计划 字符串 - 自定义计划需要使用选项注册。 privileges Object (可选) standard Boolean (可选) -默认为false secure Boolean (可选) - 默认为false bypassCSP Boolean (可选) - 默认为false allowServiceWorkers Boolean (可选) - 默认为false supportFetch

  • 问题内容: [object Object]是JavaScript Object的默认字符串表示形式。 我会知道这是正义还是正义,但是为什么呢?为什么第一个单词是小写而第二个单词是大写?它是JSON还是JavaScript的一部分? 问题答案: 所有对象都有一个以格式显示内容的方法,其中type是对象类型。 当您在get上调用该对象时,并且在一个对象上调用该字符串时,您会得到该字符串,因为它基于Ob

  • 尝试反序列化JSON对象时收到此错误消息 错误消息 操作符未为字符串“JPY:”定义,并且键入。 下面是我试图反序列化的json对象 {"JPY":{"7d":"6510.92","30d":"4434.76","24h":"7027.46"},"USD":{"7d":"65.09","30d":"48.77","24h":"74.26"},"AUD":{"7d":"64.99","30d":"4

  • 我是新来Java。我正在写一个二维游戏,我决定使用哈希地图来存储我的地图数据,因为我需要支持我的地图坐标的负索引。这是因为地图的大小可以在游戏过程中增长。 我编写了一个自定义Pair类,用于存储最终的x和y值。我使用这个Pair对象作为我的HashMap的密钥。我的值是自定义Cell类的实例。 我已经声明我的HashMap如下:

  • > 这是披萨表单。 单击收音机选择酱汁时,页面崩溃。 用户需要为订单命名。 则只能选择1种酱料。 然后选择浇头 然后提交。 应该只能在“名称”字段和所选内容被选中后提交。 然后验证表单? 从“React”导入React,{useState,useEffect}; 从“yup”导入*为yup; const formSchema=yup.object()。shape({ ID:yup.string()