firebase - 我一直在尝试将数据从 Firestore 检索到 Flutter 的 Future builder 但在第一次构建时我收到错误消息我在刷新后得到数据
问题描述
在此处输入图像描述 [在此处输入图像描述][2] Future _getName() async{ return await Firestore.instance.collection("admin_details").document(_username).get(); }
FutureBuilder<DocumentSnapshot>(
future: _getName(),
builder: (context,snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
if (snapshot.hasData) {
if (snapshot.data != null) {
return Text(snapshot.data['first_name']);
}
else {
return Text("Loading...");
}
}
else {
return Text("No Data");
}
}
else{
return null;
}
}
),
════════ 小部件库捕获的异常═════════════════════════════␕════════════ ══════════════════ 在构建 FutureBuilder(脏,状态:_FutureBuilderState#8f31b)时引发了以下 NoSuchMethodError:在 null 上调用了方法“[]”。接收者:null 尝试调用:
相关的导致错误的小部件是:FutureBuilder file:///D:/Flutter/ecoleami1_0/lib/StudentActivity.dart:52:28 当抛出异常时,这是堆栈:
0 Object.noSuchMethod (dart:core-patch/object_patch.dart:53:5)
1 DocumentSnapshot.[](包:cloud_firestore/src/document_snapshot.dart:31:42)
2 _StudentActivityPageState.build。(包:ecoleami1_0/StudentActivity.dart:57:50)
3 _FutureBuilderState.build(包:flutter/src/widgets/async.dart)
4 StatefulElement.build(包:flutter/src/widgets/framework.dart:4334:27)
... ═══════════════════════════════════════␐════════␐═══ ══════════════════════════════════════════════════ ═══
任何人都可以帮助我吗?
解决方案
我现在正在打电话,所以不是 100% 确定,但这可能是,因为当连接状态不是这样做时,您的代码返回 null:
将 'return null' 行替换为 return Text('loading');
推荐阅读
- node.js - 如何在节点 js 路由器中定义 url 参数类型
- r - Ifelse用于R中的矩阵
- file - 如何在没有 http 服务器的情况下使用文件:// url 从 Chrome 使用文件系统访问 API
- r - R根据多个条件减去值
- ios - Swift/MySql/PHP - “无法读取数据,因为它的格式不正确。” 错误
- java - 使用 Retrofit 2.0 在正文中发布请求 JSON
- c - 使用 Flex 编译器时的编译问题
- python-3.x - 如何从 csv 文件(2020 年 1 月到 2020 年 3 月)计算给定月份和天数列之间的天数?
- r - 如何“四舍五入”ggplot中的范围线
- html - CSS:为什么视图外观会因更改固定尺寸的浏览器宽度而改变?