我是Flutter的新手。
我正在尝试将Firebase数据库中的数据显示到我的应用程序中的Listview中。我在firebase数据库中有一个列表,我在其中保存了用户信息,即电子邮件和姓名,我希望我的应用程序使用listview将这些数据显示为列表,但是我一直在尝试许多教程,但无法做到。 / p>
请参见下面的屏幕快照链接
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/material.dart';
class FeedScreen extends StatelessWidget {
static final String id = 'feed_screen';
final String currentUserId;
FeedScreen({this.currentUserId});
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: 'Flutter Demo',
theme: new ThemeData(
primarySwatch: Colors.blue,
),
home: new MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => new _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
void initState() {
// Firestore.instance.collection('mountains').document()
// .setData({ 'title': 'Mount Baker', 'type': 'volcano' });
super.initState();
}
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text("Home"),
),
body: new BookList(),
floatingActionButton: new FloatingActionButton(
child: new Icon(Icons.add),
onPressed: () {
Firestore.instance.collection('users').document().setData(
{
'name': '',
'email': '',
},
);
},
),
);
}
}
class BookList extends StatelessWidget {
@override
Widget build(BuildContext context) {
return StreamBuilder<QuerySnapshot>(
stream: Firestore.instance.collection('users').snapshots(),
builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (snapshot.hasError) return new Text('Error: ${snapshot.error}');
switch (snapshot.connectionState) {
case ConnectionState.waiting:
return new Text('Loading...');
default:
return new ListView(
children:
snapshot.data.documents.map((DocumentSnapshot document) {
return new ListTile(
title: new Text(document['name']),
subtitle: new Text(document['email']),
);
}).toList(),
);
}
},
);
}
}