代码之家  ›  专栏  ›  技术社区  ›  Red M

更快地从Firebase存储下载图像

  •  0
  • Red M  · 技术社区  · 7 年前

    我的Firebase存储的当前体系结构如下:


    --&燃气轮机;用户ID 01 --&燃气轮机; 配置文件\图片\文件夹/ 图像/jpeg(URI)

    --&燃气轮机;用户ID 03
    --&燃气轮机;发射型计算机断层扫描仪。。。

    onBindViewHolder 我通过我的 URI

    @Override
    public void onBindViewHolder(@NonNull final CommentViewHolder holder, int position) {
        Uri imageUri = Uri.parse(list.get(position).getImageUri());
    
        photosStorageReference = FirebaseStorage.getInstance().getReference();
        photosStorageReference.child(Constant.PHOTOS_FIREBASE).child(userId)
                .child(Constant.USER_PROFILE_PICTURE_FOLDER).child(imageUri.getLastPathSegment())
                .getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
            @Override
            public void onSuccess(Uri uri) {
                SimpleTarget target = new SimpleTarget<Bitmap> (200, 200) {
                    @Override
                    public void onResourceReady(@NonNull Bitmap bitmap, @Nullable Transition<? super Bitmap> transition) {
                        imageView.setImageBitmap(bitmap);
                    }
                };
                GlideApp.with(context).asBitmap().load(uri).diskCacheStrategy(DiskCacheStrategy.DATA).apply(
                        RequestOptions.circleCropTransform()).into(target);
            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Log.e(TAG, e.getMessage());
            }
        });
    }
    

    问题:
    onSuccess

    有没有办法更快地从Firebase中检索图像?

    例如:
    gs://appname-b4532.appspot.com/Photos/

    连接打开后,检查用户ID并在检查子路径时检索各自的图像?


    userId02/配置文件\图片\文件夹/图像\u 02

    …等

    1 回复  |  直到 7 年前
        1
  •  2
  •   Doug Stevenson    7 年前

    您在这里使用Firebase的工作实际上都不是同步的,也没有阻塞主线程。Firebase SDK都不提供阻止方法。每当您有一个任务对象时,该工作就在另一个线程上完成。

    而且,Glide完全异步工作—它不会阻塞用于调用它的线程。