如何更快地从 firebase 存储加载图像?
How to loading images from firebase storage faster?
我制作了一个应用程序,我必须在其中显示个人资料图片,您可以在其中单击加载更多。
我必须更快地加载我的 firebase 存储图像,但我不知道该怎么做
我的代码:
await FirebaseStorage.instance
.ref('profileImages/${data[i]["uid"]}_profile_picture.jpg')
.getData();
我已经尝试过压缩图像和更多东西,但我不知道它们了。
如何更快地加载图像?
问题:
问题是 firebase 存储太慢了。
但我找到了一个简单的解决方案。
解法:
你要把你的形象做成网络形象
为此,请完成以下步骤:
1.得到图片的URL
为此使用此代码:
var ref = FirebaseStorage.instance.ref().child("profileImages/${uid}_profile_picture.png");
// this is the URL of the image
String url = (await ref.getDownloadURL()).toString();
2。保存 URL
如果你这样做是为了个人资料图片之类的东西,那么在添加图片和更改图片时将 URL 添加到 cloud firestore 并使用此代码:
await FirebaseFirestore.instance
.collection('users')
.where("uid", isEqualTo: FirebaseAuth.instance.currentUser?.uid)
.get()
.then((value) async {
await FirebaseFirestore.instance.collection('users').doc(value.docs[0].id).update({"profileImageURL": url});
});
如果您为应用程序图标之类的东西执行此操作,请使用此代码:
(await SharedPreferences.getInstance()).setString("logoURL", url);
3。从图像中获取 URL
如果您使用第一种方式来保存 URL(如果您为个人资料图像之类的东西这样做)则使用此代码:
await FirebaseFirestore.instance
.collection('users')
.where("uid", isEqualTo: uid)
.get()
.then((value) {
url = value.docs[0].data()["profileImageURL"];
});
如果您使用其他方式来保存 URL(如果您为应用程序图标之类的东西这样做),请使用此代码:
(await SharedPreferences.getInstance()).getString("logoURL");
4.显示图片
要显示图像,请使用此代码:
Container(
height: 100,
width: 100,
child: Image(image: NetworkImage(url)),
);
希望对您有所帮助!
我制作了一个应用程序,我必须在其中显示个人资料图片,您可以在其中单击加载更多。
我必须更快地加载我的 firebase 存储图像,但我不知道该怎么做
我的代码:
await FirebaseStorage.instance
.ref('profileImages/${data[i]["uid"]}_profile_picture.jpg')
.getData();
我已经尝试过压缩图像和更多东西,但我不知道它们了。
如何更快地加载图像?
问题:
问题是 firebase 存储太慢了。
但我找到了一个简单的解决方案。
解法:
你要把你的形象做成网络形象
为此,请完成以下步骤:
1.得到图片的URL
为此使用此代码:
var ref = FirebaseStorage.instance.ref().child("profileImages/${uid}_profile_picture.png");
// this is the URL of the image
String url = (await ref.getDownloadURL()).toString();
2。保存 URL
如果你这样做是为了个人资料图片之类的东西,那么在添加图片和更改图片时将 URL 添加到 cloud firestore 并使用此代码:
await FirebaseFirestore.instance
.collection('users')
.where("uid", isEqualTo: FirebaseAuth.instance.currentUser?.uid)
.get()
.then((value) async {
await FirebaseFirestore.instance.collection('users').doc(value.docs[0].id).update({"profileImageURL": url});
});
如果您为应用程序图标之类的东西执行此操作,请使用此代码:
(await SharedPreferences.getInstance()).setString("logoURL", url);
3。从图像中获取 URL
如果您使用第一种方式来保存 URL(如果您为个人资料图像之类的东西这样做)则使用此代码:
await FirebaseFirestore.instance
.collection('users')
.where("uid", isEqualTo: uid)
.get()
.then((value) {
url = value.docs[0].data()["profileImageURL"];
});
如果您使用其他方式来保存 URL(如果您为应用程序图标之类的东西这样做),请使用此代码:
(await SharedPreferences.getInstance()).getString("logoURL");
4.显示图片
要显示图像,请使用此代码:
Container(
height: 100,
width: 100,
child: Image(image: NetworkImage(url)),
);
希望对您有所帮助!