gpt4 book ai didi

android - 本地缓存图像,来自 google firebase 存储

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:56:03 27 4
gpt4 key购买 nike

我正在寻找一种方法,从 google firebase 平台上的存储中缓存图像。现在,我可以下载图像,并向用户展示这些图像,但我无法缓存和访问,即使没有互联网连接也是如此。数据库可以离线访问。所以我想,也会有一种存储方式。我不想将每个图像都下载到存储中,因为这样我就需要每次都检查,如果图像仍然是最新的,它可能会被更改。这里有几个链接,我能找到什么,但我的问题没有答案。也许有人知道解决方法或实现方法。谢谢!

下载文件: https://firebase.google.com/docs/storage/android/download-files

缓存(离线)数据库: https://firebase.google.com/docs/database/android/offline-capabilities

更新 1

下面是我如何使用 picasso 来“缓存”文件,我添加了关注下载的 Activity :

Picasso.with(getApplicationContext())
.load(uri.toString())
.networkPolicy(NetworkPolicy.OFFLINE)
.into(image1);

欢迎任何帮助。谢谢!

最佳答案

恐怕 Firebase SDK 本身不提供图像缓存。但是有几个很棒的图书馆可以为你做这件事。他们下载图像,将其显示在 ImageView 中并将其缓存在一行代码中。只需向 Firebase 请求图像下载 URL 并将其提供给图像缓存库即可。

像这样,如果你选择Picasso作为缓存库:

storageRef.child("users/me/profile.png").getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
// Got the download URL for 'users/me/profile.png'
// Pass it to Picasso to download, show in ImageView and caching
Picasso.with(context).load(uri.toString()).into(imageView);
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
// Handle any errors
}
});

UPD:要在 Picasso 中使用磁盘缓存,您需要明确设置 OkHttpDownloader。看这里How do I use disk caching in Picasso?

关于android - 本地缓存图像,来自 google firebase 存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37699688/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com