首页 > 解决方案 > 如何检索单个文档数据并在应用程序中显示?

问题描述

在这里,我试图打印用户的用户名,它会产生以下错误。 错误如下...

我创建了一个函数 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 ....

此错误的原因是什么以及如何解决?

标签: androidfirebasefluttergoogle-cloud-firestore

解决方案


错误消息告诉您它snapshots.data为空,因此您无法使用[]运算符对其进行索引。

在使用DocumentSnapshot之前,您应该在访问其字段数据之前检查它是否存在。如果文档不存在,快照的数据属性将为空。


推荐阅读