【发布时间】:2021-09-16 15:40:30
【问题描述】:
我无法显示来自 Firebase 的数据。这是我在 FutureBuilder 中使用的代码。看起来data()有错误,但我不知道是哪一个,有人知道吗?
这就是我得到的:“方法‘数据’没有为‘对象’类型定义。 尝试将名称更正为现有方法的名称,或定义名为“数据”的方法。”
if(snapshot.connectionState == ConnectionState.done) {
Map<String, dynamic> documentData = snapshot.data!.data() as Map<String, dynamic>;
return ListView(
children: [
CustomSubtitle(
text: "${documentData['01 - Brand']}"
),
CustomTitle(
text: "${documentData['02 - Name']}",
),
CustomText(
text: "${documentData['04 - Description']}",
)
],
);
}
【问题讨论】:
-
` Map
documentData = snapshot.data as Map ;` -
不客气。
-
哎呀...我的代码现在还可以,但是当我运行应用程序时,出现错误“类型 '_JsonDocumentSnapshot' 不是类型 'Map
的子类型类型转换”。你有什么想法吗? -
是的,我重新阅读了您的代码几次并意识到您应该将 if 条件更改为 if(snapshot.hasData && !(snapshot.hasError)) {...}。我假设这个函数是 FutureBuilder 小部件中构建器的一部分。
-
是的,谢谢,我找到了解决方案。感谢您的时间和帮助!