【问题标题】:Invalid value: Valid value range is empty: 0)无效值:有效值范围为空:0)
【发布时间】:2021-12-31 06:17:19
【问题描述】:
 FirebaseFirestore firestore = FirebaseFirestore.instance;

List dataListWidget(AsyncSnapshot 快照) { 返回 snapshot.data.docs[0].map((document) { 返回列表瓦片( 标题:文本(文档[“名称”]), 副标题:文本(文档[“城市”]), ); }).toList(); }

//我的streamBuilder

流生成器( 流:firestore.collection('customers').snapshots(), 构建器:(上下文,快照){ 返回列表视图( 孩子:dataListWidget(快照), ); }, ),`

【问题讨论】:

  • 请使用 ``` 格式化代码,您确定数据存在于 firestore 中吗?

标签: flutter firebase-realtime-database google-cloud-firestore


【解决方案1】:

您刚刚触发的查询返回空意味着它没有任何响应,并且没有检查您尝试访问其第 0 个元素的任何条件。

你应该这样做

StreamBuilder(
  stream:firestore.collection('customers').snapshots(),
  builder:(context,snapshot){
    if(snapshot.hasData && !snapshot.hasError){
      return ListView(children: dataListWidget(snapshot),); 
    }
    return Container();
});

你的 dataListWidget 应该是这样的

List dataListWidget(AsyncSnapshot snapshot){
  if(snapshot.data.docs.isNotEmpty){
    return snapshot.data.docs[0].map((document) { 
      return ListTile( 
        title: Text(document["Name"]), subtitle: Text(document["City"]), 
        );
    }).toList();
  }
  else{
    return [Container()];
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-25
    • 2020-11-01
    • 2020-12-02
    • 2021-07-28
    • 2021-10-06
    • 2021-11-13
    • 2021-06-16
    • 2020-06-24
    相关资源
    最近更新 更多