java - 如何从 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();
}
解决方案
只需删除 onSuccessListener。在这里你有 IMAGE_FILE.add(file); 对于数组列表,因此不需要 onSuccessListener
推荐阅读
- lua - 有没有办法使用 Lua 在 Wireshark 中为自定义协议创建配置文件?
- quarkus - 找不到项目时如何返回自定义错误响应
- sql - 如何在 Bigquery 中声明和访问两个元素的元组?
- python - 即使使用命令 MaxNlocator(integer=True) 我也会得到浮点轴
- npm - 创建 NPM 包时的 Webpack 公共路径
- python - 如何使用 Pytest Logging 添加自定义变量(浏览器名称)?
- php - Replace characters in a PHP string skipping specific domain extensions
- apple-push-notifications - 当 iOS 应用程序被杀死和/或在后台时增加 appIcon 徽章编号
- google-forms - 我们如何才能接收到 Google 群组电子邮件的 G 表单响应通知?
- benchmarking - 单个乘法累加运算通常算作单个 FLOP 吗?