firebase - 使用 Firestore 查询显示 Firebase 存储的图像以在 Flutter 中获取图像 url
问题描述
我正在尝试用我的 Firebase 存储中的图像填充 GridView.builder。我想通过查询从我的 Firestore 数据库中获取 url。我找不到任何好的教程,并尝试自己构建该功能,但没有奏效。在 FutureBuilder 中,我打印了应具有数据变量的快照变量,但它没有。
Container(
margin: EdgeInsets.all(5),
padding: EdgeInsets.all(5),
height: deviceHeight * 0.35,
width: deviceWith,
color: Colors.white,
child: FutureBuilder(
future: getImages(),
builder: (context, AsyncSnapshot<dynamic>snapshot) {
print(snapshot);
if (snapshot.connectionState == ConnectionState.done) {
return ListView.builder(
shrinkWrap: true,
itemCount: snapshot.data.docs.length,
itemBuilder: (BuildContext context, int index) {
return ListTile(
contentPadding: EdgeInsets.all(8.0),
title: Text(snapshot.data.docs[index].data()["name"]),
leading: Image.network(
snapshot.data.docs[index].data()["url"],
fit: BoxFit.fill),
);
});
} else if (snapshot.connectionState == ConnectionState.none) {
return Text("No data");
}
return CircularProgressIndicator();
},
),
),
Future getImages() {
var data;
page.where("userID",isEqualTo: FirebaseAuth.instance.currentUser.uid).snapshots().listen((data){
return data.docs;
});
return data;
}
我只更改了教程中的 Future 函数,而不是 FutureBuilder 变量,但我知道我必须更改它们。
解决方案
将 future 方法更改为以下内容:
Future<QuerySnapshot> getImages() async {
return await page.where("userID",isEqualTo: FirebaseAuth.instance.currentUser.uid).get();
}
get()
返回一个Future<QuerySnapshot>
推荐阅读
- django - 两个 Django 模型之间的相互关系
- python - Django:在一个视图中有超过 3 个模型时出错
- swift - 手动动画 ASDisplayNode 纹理 (AsyncDisplayKit)
- angular - Ionic (Angular, Browser) 和 AWS EC2 (Ubuntu) 之间的文件传输
- java - 解决。使用 JsonReader.setLenient(true) 接受格式错误的 JSON。迷路了,求指点
- java - java: 包 org.springframework.context 不存在
- java - 将子级添加到 java fxml 中 fx:root 元素的子级
- java - 在Java中,如何以整数的反转二进制形式获取一个的位置?
- javascript - 当我们从一个页面移动到另一个页面时,如何在 css 中更改相应的导航链接
- javascript - 我可以使用制表符插件从一个触发一个功能的按钮显示 rowContextMenu 吗?