首页 > 解决方案 > 如何从 Firebase Firestorage 检索多个图像并在 Android Studio (Java) 中维护它们的顺序?

问题描述

我正在尝试从 Firestorage 检索多个图像,每个图像都与 Firebase Firestore 数据库中的一个文档相关联(文档 ID 等同于图像名称)。

在检索到我插入的所有文档 ID 之后ArrayList<String> POSTS_IDs,我想ArrayList<File> IMAGE_FILE用图像填充它,但问题是图像总是采用随机顺序并且不保持 POSTS_ID 的顺序。

我的意思是,如果 POSTS_IDs 的索引 3 等于“image3”,则 IMAGE_FILE 的索引 3 将是图像 5 或 6(它是随机的,有时它带有正确的顺序)。

我想知道我的方法是否错误或有什么问题。谢谢

try {

                for (int i = 0; i < POSTS_IDs.size(); i++) {
                    final File file = File.createTempFile(POSTS_IDs.get(i), ".jpg");


                    StorageReference reference1 = storageReference.child("images/posts/" + POSTS_IDs.get(i) + ".jpg");
                    reference1.getFile(file).addOnSuccessListener(new OnSuccessListener<FileDownloadTask.TaskSnapshot>() {
                        @Override
                        public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) {
                            Toast.makeText(getContext(), ""+taskSnapshot.toString(), Toast.LENGTH_SHORT).show();

                            IMAGE_FILE.add(file); // adding the images to the IMAGE_FILE ArrayList<File>

                        }
                    });

                }

                }catch(Exception e){
                    Toast.makeText(getContext(), "Error" + e, Toast.LENGTH_SHORT).show();

                }

标签: javaandroidfirebaseandroid-studiogoogle-cloud-firestore

解决方案


只需删除 onSuccessListener。在这里你有 IMAGE_FILE.add(file); 对于数组列表,因此不需要 onSuccessListener


推荐阅读