如何将Firebase存储映像加载到壁画而不丢失缓存功能?

问题描述 投票:0回答:1

这是我下载图像网址的方式

StorageReference gsReference = FirebaseStorage.getInstance().getReference();

gsReference.child(<image_path>).getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
    @Override
    public void onSuccess(Uri uri) {
        // use fresco to load images
    }
});

然后我像这样使用壁画:

StorageReference gsReference = FirebaseStorage.getInstance().getReference();

gsReference.child(<image_path>).getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
    @Override
    public void onSuccess(Uri uri) {
        ImageRequest request1 = ImageRequestBuilder.newBuilderWithSource(Uri.parse(uri))
                .setProgressiveRenderingEnabled(true)
                .build();
        DraweeController controller = Fresco.newDraweeControllerBuilder()
                .setImageRequest(request1)
                .setControllerListener(this)
                .setOldController(imageView.getController())
                .build();

        imageView.setController(controller);
    }
});

当用户离线时,我失去了Fresco缓存功能,因为我必须下载要在壁画中使用的图像URL。因此,图片网址永远不会加载。

如何从壁画的缓存中获取图像,以便即使离线也可以加载图像,并且无法获取下载URL?

android firebase firebase-storage fresco
1个回答
0
投票

确定路径中图像的下载URL需要连接到Google服务器。您的设备离线时无法拨打getDownloadURL()

© www.soinside.com 2019 - 2024. All rights reserved.