【发布时间】:2021-02-02 00:06:25
【问题描述】:
我在将 Firebase Firestore 数据库中的图像加载到 Flutter 应用时遇到了一点问题。我有点坚持这一点,因为我不知道目前该做什么。我已经看到了一种使用 NetworkImage 在列表图块上下载图像的方法,但它只执行一个图像。我正在想办法为 Firestore 数据库中的每个项目使用单独的图像。
我已将图像 URL 从 Firebase 存储连接到 Firestore 下的 imageURL 键,这是一个字符串。但我仍在努力弄清楚如何做到这一点。我还下载了所有依赖项,例如 Firebase 和 Firestore。如果有人确实提供帮助或分享他们如何处理类似问题的提示,我们将不胜感激! :)
class HomeTab extends StatefulWidget {
@override
_HomeTabState createState() => _HomeTabState();
}
class _HomeTabState extends State<HomeTab> {
@override
Widget build(BuildContext context) {
// This will reference our posts collection in Firebase Firestore NoSQL database.
CollectionReference posts = FirebaseFirestore.instance.collection('posts');
return Center(
child: Container(
width: 250,
child: StreamBuilder<QuerySnapshot>(
// Renders every post from the Firebase Firestore Database.
stream: posts.snapshots(),
builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (snapshot.hasError) {
return Text('Something went wrong');
}
if (snapshot.connectionState == ConnectionState.waiting) {
return Text("Loading");
}
return new ListView(
children: snapshot.data.docs.map((DocumentSnapshot document) {
return Card(
margin: EdgeInsets.all(20.0),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(15.0),
),
elevation: 10,
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
ListTile(
// Renders the title on every single listview.
title: new Text(document.data()['title']),
// leading: new NetworkImage(''),
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => ReaderPage(),
),
);
},
),
],
// Added Column
// In case if things don't work, go back to this.
// child: new ListTile(
// title: new Text(document.data()['text']),
// ),
),
);
}).toList(),
);
},
),
),
);
}
}
【问题讨论】:
-
您的代码目前只能获取
title字段,您可以分享您尝试获取文件的代码吗?您还可以分享这种“使用 NetworkImage 下载列表磁贴上的图像的方式”吗?
标签: firebase flutter dart google-cloud-firestore