android - 如何检索单个文档数据并在应用程序中显示?
问题描述
我创建了一个函数 userData() ,代码是
userData() async
{
var userData = await _db.collection('users').document(_uuid).get();
return userData;
}
我将在哪里使用 uid 获取特定用户的数据并返回它。
我用来打印数据的代码如下
return FutureBuilder(
future: authService.userData(),
builder: (_,snapshots){
if(snapshots.connectionState == ConnectionState.waiting)
{
return Center(child: Text('Loading...'),);
}
else{
print("Snapshots: "+snapshots.toString());
return ListView.builder(itemCount: 1, itemBuilder: (_,index){
return ListTile(
title: Text(snapshots.data["username"].toString()),
);
});
}
}
);
firestore的结构是
集合('user')-> 文档(uid)-> 1.username 2.email ....
此错误的原因是什么以及如何解决?
解决方案
错误消息告诉您它snapshots.data
为空,因此您无法使用[]
运算符对其进行索引。
在使用DocumentSnapshot之前,您应该在访问其字段数据之前检查它是否存在。如果文档不存在,快照的数据属性将为空。
推荐阅读
- swiftui - 有没有一种简单的方法来对齐子视图?
- xamarin.android - 卸载应用程序时的密码请求
- reactjs - React Router v5 - 单击不是重新渲染
- python - Scrapy:如何使用 XPATH 在表中迭代创建 dict 输出
- matlab - matlab如何求解微分方程?
- azure-virtual-machine - 如何关闭虚拟机以免产生费用,但要像在 VMware 中那样在磁盘上关闭它?
- pointers - 当我们从程序堆栈中压入和弹出时,为什么我们将堆栈指针递增/递减“4”?
- input - Godot:如何在 _process 函数中获得 InputEventMouseMotion?
- swift - 无法获取用户 - 使用 firebase 时出错,无法获取
- postgresql - Spring Boot 给出 URL 必须以 'jdbc' 开头的错误