android - 出现数据剂量,我只有白屏
问题描述
我构建了一个聊天应用程序,我尝试从 firebase 调用数据以显示在屏幕上,但只出现白屏 iam 仍在学习颤振并使用 firestore_cloud
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
class ChatScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
CollectionReference users = FirebaseFirestore.instance
.collection('chats/lTHEN8VkO7uVAtbeY25R/messeges');
return Scaffold(
body: StreamBuilder(
stream: users.snapshots(),
builder: (ctx, code) {
if (code.connectionState == ConnectionState.waiting) {
return Center(
child: CircularProgressIndicator(),
);
}
final documents = code.data.documents;
return ListView.builder(
itemBuilder: (ctx, index) => Container(
child: Text(documents[index]['text']),
padding: EdgeInsets.all(8),
),
itemCount: documents.length,
);
},
),
floatingActionButton: FloatingActionButton(
onPressed: () {},
child: Icon(Icons.add),
),
);
}
}
解决方案
尝试这个,
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
CollectionReference users = FirebaseFirestore.instance
.collection('chats/lTHEN8VkO7uVAtbeY25R/messeges');
class ChatScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: StreamBuilder(
stream: users.snapshots(),
builder: (context, snapshot){
if (snapshots.connectionState == ConnectionState.active &&
snapshots.hasData) {
print(snapshots.data);
return ListView.builder(
itemCount: snapshots.data.length,
itemBuilder: (BuildContext context, int index) {
var doc=snapshots.data[index];
Map data= doc.data; // this is your data which is probably a map
return Text(
data[index]['text']
);
},
);
} else {
return Center(child: CircularProgressIndicator());
}
},
),
);
}
}
推荐阅读
- c# - 为什么我的脚本给我一条消息 can't find element in my if 语句?
- internationalization - 使用 Appium 的 AccessibilityIDs 的多语言移动应用程序 - 糟糕的配方
- go - 为事件处理程序的多个实例创建包装器
- python - 在 Python 中创建复杂的嵌套循环,其值取自 List
- scheme - 返回给定值和给定列表的前任
- python - 是否可以在列表和元素中使用相同的切片符号来获得相同的结果?
- spring - Spring 应用程序的端到端流程
- java - Java Stream如果另一个方法返回null,如何跳过调用方法
- kubernetes - Kubeadm 加入失败并挂在设置节点注释以启用卷控制器附加/分离
- android - 如何为子项目或应用程序级别的 build.gradle 指定 gradle 版本