【发布时间】:2021-01-03 20:32:24
【问题描述】:
我已经尝试了以下两种代码:一种是 StreamBuilder.ListView,另一种是 StreamBuilder.ListView.builder。我无法得到结果。它显示
在 null 上调用了“数据”方法。接收者:null 尝试调用: 数据()
我无法了解 QuerySnapshots 的工作原理
class FeedStream extends StatelessWidget {
FeedStream();
Map document;
@override
Widget build(BuildContext context) {
return Scaffold(
body: StreamBuilder(
stream: FirebaseFirestore.instance.collection('users').snapshots(),
builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (!snapshot.hasData) {
return Center(
child: CircularProgressIndicator(),
);
}
return ListView.builder(
itemCount: 2,
itemBuilder: (context, index) {
return _buildList(context, snapshot.data.docs[index]);
},
);
},
),
);
}
Widget _buildList(BuildContext context, DocumentSnapshot document) {
return ListTile(
title: Text(document.data()['displayName']),
subtitle: Text(document.data()['bio']),
);
}
}
class FeedStream extends StatelessWidget {
FeedStream();
Map document;
@override
Widget build(BuildContext context) {
return Scaffold(
body: StreamBuilder(
stream: FirebaseFirestore.instance.collection('users').snapshots(),
builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (!snapshot.hasData) {
return Center(
child: CircularProgressIndicator(),
);
}
return ListView(
children: snapshot.data.docs.map((document) {
return Center(
child: Container(
height: MediaQuery.of(context).size.height / 6,
child:
Text('Name:' + document.data()['displayName'].toString()),
),
);
}).toList(),
);
},
),
);
}
}
有人可以解决这个问题吗?
【问题讨论】:
标签: firebase flutter google-cloud-firestore stream-builder